#include <fstream>
#define lu 105
#define FOR for(i=1;i<=n;i++) for(j=1;j<=n;j++)
using namespace std;
int i,j,ai[lu][lu],a[lu][lu],x,y,m,e,n,te,pr,aj[lu][lu],em,prim[lu*lu],ti,tj,Q;
int ve[lu*lu],s,d,ww,we,fr[lu*lu],q2,r2,es,tti,ttj;
char c;
void swaping(int w1,int w2,int w3,int w4)
{
int l,col;
l=(a[w1][w2]-1)/n+1,col=a[w1][w2]%n;
if (col==0) col=n;
ai[l][col]=w3,aj[l][col]=w4;
l=(a[w3][w4]-1)/n+1,col=a[w3][w4]%n;
if (col==0) col=n;
ai[l][col]=w1,aj[l][col]=w2;
swap( a[w1][w2],a[w3][w4]);
}
int main()
{
freopen("perspic.in","r",stdin);
freopen("perspic.out","w",stdout);
scanf("%d %d \n",&n,&m);
FOR e++,a[i][j]=e,ai[i][j]=i,aj[i][j]=j;
for(i=1; i<=m; i++) {
scanf("%c %d %d",&c,&x,&y);
if (c=='R')
for(j=1; j<=n; j++)
swaping (x,j,y,j);
if (c=='C')
for(j=1; j<=n; j++)
swaping(j,x,j,y);
if (c=='E') {
scanf("%d %d \n",&q2,&r2);
swaping(x,y,q2,r2);
}
if (c!='E') scanf("\n");
}
FOR {
es=1;
ti=i,tj=j;
while (1) {
tti=ti;
ttj=tj;
ti=ai[tti][ttj];
tj=aj[tti][ttj];
if (ti==i&&tj==j) break;
es++;
}
if ((ai[i][j]!=i||j!=aj[i][j])&&ai[ti][tj]==i&&aj[ti][tj]==j) es++;
Q++,ve[Q]=es,em=max(em,es);
}
prim[1]=1;
for(i=2; i<=em; i++) if (prim[i]==0)
for(j=i+i; j<=em; j+=i) prim[j]=1;
for(i=1; i<=em; i++)
if (prim[i]==0) te++,prim[te]=i;
for(i=1,ww=ve[1]; i<=n*n; d=0,ww=ve[i],i++)
while (d<te&&ww!=1) {
d++,s=0;
while (ww%prim[d]==0) ww=ww/prim[d],s++;
if (fr[prim[d]]<s) fr[prim[d]]=s;
}
for(i=1,pr=1,we=1; i<=10000; i++,we=1)
if (fr[i]>0) {
for(j=1; j<=fr[i]; j++) we=(we*i)%13007;
pr=(pr*we)%13007;
}
printf("%d\n",pr);
return 0;
}