/*
Jitu Das
Senior-5
Contest 3
Montgomery
Blair HS
9011
*/
#include <stdio.h>
#include <string.h>
#define VALIDSQ(r,c) ((r)>=0 && (c)>=0
&& (r)<10 && (c)<10)
#define ADJACENT(r0,c0,r1,c1) ( abs((r1)-(r0)) +
abs((c1)-(c0)) < 2 )
char piece[4][2], pieceA[4][2], pieceSize[4]={2,3,4,4},
in[4];
char
pieces[4][4][2]={{{0,0},{0,1},{0,0},{0,0}},{{0,0},{0,1},{-1,1},{0,0}},{{0,0},{-1,-1},{-1,0},{-1,1}},{{0,0},{-1,-1},{-1,0},{-2,-1}}};
void rotTrans(int n, int dr, int dc, char shape[4][2], int
shapeSize) {
int i,j;
for
(i=0;i<shapeSize;i++) {
for (j=0;j<n;j++) {
char foo[2] = {-shape[i][1],
shape[i][0]};
memcpy(shape[i],foo,2);
}
shape[i][0] += dr;
shape[i][1] += dc;
}
}
int main() {
int i,j,
rot,t1,t2, dr,dc,curpiece,currot, fail,count=0;
scanf("
%[^,],%d,%d,%d",in,&rot,&t1,&t2);
memcpy(pieceA,
pieces[0], 8);
rotTrans(rot/90,
in[0]-'A', atoi(in+1)-1, pieceA, 2);
for
(curpiece=0;curpiece<4;curpiece++)
for
(currot=0;currot<4;currot++)
for
(dr=-1;dr<=1;dr+=2)
for
(dc=-1;dc<=1;dc+=2) {
memcpy(piece, pieces[curpiece], 8);
rotTrans(currot, 0,0, piece,
pieceSize[curpiece]);
rotTrans(0,
pieceA[t1-1][0]+dr-piece[t2-1][0], pieceA[t1-1][1]+dc-piece[t2-1][1], piece,
pieceSize[curpiece]);
fail = (pieceSize[curpiece]-1 <
t2-1);
for
(i=0;i<pieceSize[curpiece];i++)
for (j=0;j<2;j++)
if
(!VALIDSQ(piece[i][0],piece[i][1]) || ADJACENT(pieceA[j][0],pieceA[j][1],
piece[i][0],piece[i][1])) fail++;
if (!fail) count++;
}
if (count)
printf("%d\n", count); else printf("NONE\n");
main();
}