unsigned short RD(int i,int j){
#define f(a)for(a=0;++a<DIM;)
static int z;float x=0,y=0,m,n,k;if(!z){z=1;f(m)f(n)GR(m-DIM,n-DIM);};return BL(i,j);
}
unsigned short GR(int i,int j){
float x=0,y=0,a,k,p=0;if(i<0)f(k){a=x*x-y*y+(i+256.0)/512;y=2*x*y+(j+512.0)/512;x=a;if(x*x+y*y>4)break;BL(int((x-.6)*512)*2+p,(y-1)*512);if(!p&&k==DM1){x=y=k=0;p=1;}}else{return BL(i,j);}
}
unsigned short BL(int i,int j){
static float c[DIM][DIM],p;p=i%2;if(i<0&&(i/=2)>-DIM-1&&j<0&&j>-DIM-1){c[j+DIM][i+DIM]+=p*2+1;}if(i>0&&i<DIM&&j>0&&j<DIM)return log(c[i][j])*90;