// Convert Wireworld pattern to PGM (portable grey map) graphics format
// Copyright Mark Owen, September 2004
// E-mail: mail -at- quinapalus.com

#include <stdio.h>

main() {
char *p;
char s[10000];
int i,j;
int x,y;

p=fgets(s,10000,stdin);
if(p==NULL) return 1;
i=sscanf(s,"%d %d",&x,&y);
if(i!=2) return 1;
printf("P2\n%d %d\n3\n",x,y);
for(j=0;j<y;j++) {
  p=fgets(s,10000,stdin);
  if(p==NULL) return 1;
  for(i=0;i<x;i++)
    switch(s[i]) {
      case ' ':printf("0 ");break;
      case '#':printf("1 ");break;
      case '@':printf("2 ");break;
      case '~':printf("3 ");break;
      default :printf("0 ");break;
      }
  printf("\n");
  }
return 0;
}
