#include<bits/stdc++.h>
using namespace std;
int n,b;
int a[121][121];
int ans;
int dx[]={0,1,-1,0},
dy[]={1,0,0,-1};
bool bo[121][121];
void dfs(int x,int y,int id,int f)
{
int x1=dx[f]+x;
int y1=dy[f]+y;
if(bo[x1][y1]==1) return;
if(x1<=0||y1<=0||x1>n||y1>n||a[x1][y1]==1)
{
bool flag=true;
for(int i=0;i<4;i++)
{
int x2=x+dx[i];
int y2=y+dy[i];
if(x2<=0||y2<=0||x2>n||y2>n||a[x2][y2]==1||bo[x2][y2]==1) continue;
bo[x2][y2]=1;
dfs(x2,y2,id+1,i);
flag=false;
bo[x2][y2]=0;
}
if(flag)
{
ans=max(ans,id);
return;
}
}
bo[x1][y1]=1;
dfs(x1,y1,id+1,f);
bo[x1][y1]=0;
return;
}
int main()
{
scanf("%d%d",&n,&b);
for(int i=1;i<=b;i++)
{
string s;
cin>>s;
a[(int)(s[0])-'A'+1][s[1]-'0']=1;
}
bo[1][1]=1;
dfs(1,1,1,0);
dfs(1,1,1,1);
dfs(1,1,1,2);
dfs(1,1,1,3);
printf("%d",ans);
return 0;
}
P1560 就对了两个点