//  Ces programmes sont sous licence CeCILL-B V1.
void main() {
  int i, j;
  int[][] r, v, b;
  java.io.OutputStreamWriter f;

  // Allocations et initialisations
  r = new int[400][400];
  v = new int[400][400];
  b = new int[400][400];
  for(i = 0; i <= 399; i = i + 1)
	for(j = 0; j <= 399; j = j + 1) {
	  r[i][j255;
	  v[i][j255;
	  b[i][j255;
	}
  // Le sol
  for(j = 250; j <= 300; j = j + 1)
	for(i = 400 - j; i <= j; i = i + 1) {
	  if((10 (i + j - 400(j - 20010 (600 * j(j - 200)) == 0) {
		r[i][j167;
		v[i][j103;
		b[i][j38;
	  else {
		r[i][j255;
		v[i][j255;
		b[i][j0;
	  }
	}
  // Les murs latéraux
  for(i = 100; i <= 150; i = i + 1)
	for(j = i; j <= 400 - i; j = j + 1) {
	  r[i][j240;
	  v[i][j195;
	  b[i][j0;
	}
  for(i = 250; i <= 300; i = i + 1)
	for(j = 400 - i; j <= i; j = j + 1) {
	  r[i][j240;
	  v[i][j195;
	  b[i][j0;
	}
  // Le plafond
  for(j = 100; j <= 150; j = j + 1)
	for(i = j; i <= 400 - j; i = i + 1) {
	  r[i][j246;
	  v[i][j220;
	  b[i][j18;
	}
  // Le mur du fond
  for(i = 150; i <= 250; i = i + 1)
	for(j = 150; j <= 250; j = j + 1) {
	  if((160 <= i&& (i <= 210&& (160 <= j&& (j <= 220)) {
		r[i][j119;
		v[i][j181;
		b[i][j254;
	  else {
		r[i][j255;
		v[i][j244;
		b[i][j141;
	  }
	}
  // Écriture du fichier ppm
  f = openOut("botticelli.ppm");
  printlnToFile(f, "P3");
  printlnToFile(f, "#");
  printlnToFile(f, 400);
  printlnToFile(f, 400);
  printlnToFile(f, 255);
  for(j = 0; j <= 399; j = j + 1)
	for(i = 0; i <= 399; i = i + 1) {
	  printlnToFile(f, r[i][j]);
	  printlnToFile(f, v[i][j]);
	  printlnToFile(f, b[i][j]);
	}
  closeOut(f);
}