import patterns;

string[] patterns = {"grey", "red", "green", "blue", "pink", "orange", "yellow", "purple"};
pen[] colours =     { grey,   red,   green,   blue,   pink,   orange,   yellow,   purple};

for (int i = 0; i < patterns.length; ++i) {
  add(patterns[i], hatch(0.25mm, colours[i]));
}

defaultpen(0.5);

bbox(white, Fill);

int[] values;
while (true) {
  int v = stdin;
  if (error(stdin)) {
    break;
  }
  values.push(v);
}
int n = values.length;

fill((1,-1) -- (n*10-1,-1) -- (n*10-1,9) -- (1,9) -- cycle, grey);

for (int i = 0; i < n; ++i) {
  int cid = values[i] % colours.length;
  pen col = colours[cid];
  pen pat = pattern(patterns[cid]);
  filldraw((i*10,0) -- (i*10,10) -- (i*10+10,10) -- (i*10+10,0) -- cycle, fillpen=pat, col);
  // filldraw(circle((i*10+5, -3.5), 2.5), fillpen=white, black);
  label(scale(0.3) * format('%d', values[i]), (i*10+5,-3.5));
}
for (int i=0; i<=10; i += 2) {
  draw((0*10, i) -- (0*10-4, i+(i-5)/5.0), colours[n > 0 ? values[  0] % colours.length : 0]);
  draw((n*10, i) -- (n*10+4, i+(i-5)/5.0), colours[n > 0 ? values[n-1] % colours.length : 0]);
}

shipout(bbox(xmargin=2, white, Fill));
