zoj 3314 CAPTCHA(纯模拟)

时间:2023-03-09 20:10:50
zoj 3314 CAPTCHA(纯模拟)

题目

有些人用深搜写的,当然我这弱弱的,只理解纯模拟。。。

纯模拟,第一次写了那么长的代码,我自己也是够坚韧不拔的,,,,必须留念啊!!!

注意,G包含C,E包含L,R包含P,(照图说O应该不包含C,但是不排除掉这种情况,就wa掉了,所以要排除O包含C的情况。。)

#include<stdio.h>
#include<string.h>
int n,m;
char s2[][];
int vis[];
void fun(){
//a
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int no=,jj;
for(jj=j+;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
} /*
MMMMMMMMMMM1
MM11111111MM
MM11111111MM
MMMMMMMMMMM1
MM11111111MM
MM11111111MM
MMMMMMMMMMM1
*/
//b
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int jj,no=;
for(jj=j;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
}
/*
111MMMMMMMM11
1MM1111111MM1
MM111111111MM
MM11111111111
MM111111111MM
1MM1111111MM1
111MMMMMMMM11
*/
//c
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int jj,no=;
for(jj=j+;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(s2[i+][]=='M'||s2[i+][]=='M'){no=;continue;}
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
}
/*
MMMMMMMMMMM111
MM111111111MM1
MM1111111111MM
MM1111111111MM
MM1111111111MM
MM111111111MM1
MMMMMMMMMMM111
*/
//d
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int jj,no=;
for(jj=j;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
} /*
MMMMMMMMMMMM
MM1111111111
MM1111111111
MMMMMMMMMMMM
MM1111111111
MM1111111111
MMMMMMMMMMMM
*/
//e
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int no=,jj;
for(jj=j;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
}
/*
MMMMMMMMMMMMM
MM11111111111
MM11111111111
MMMMMMMMMMMMM
MM11111111111
MM11111111111
MM11111111111
*/
//f
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int no=,jj;
for(jj=j;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
} /*
111MMMMMMMM11
1MM1111111MM1
MM111111111MM
MM11111111111
MM111111MMMMM
1MM1111111MM1
111MMMMMMMMM1
*/
//g
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int no=,jj;
for(jj=j+;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
} /*
MM111111111MM
MM111111111MM
MM111111111MM
MMMMMMMMMMMMM
MM111111111MM
MM111111111MM
MM111111111MM
*/
//h
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
for(x=;x<;x++){
for(jj=j;jj<j+;jj++)if(s2[i+x][jj]!='M'){no=;break;}if(no==)break;
for(jj=j+;jj<j+;jj++)if(s2[i+x][jj]!='M'){no=;break;}if(no==)break;
}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(x=;x<;x++){
for(jj=j;jj<j+;jj++)if(s2[i+x][jj]!='M'){no=;break;}if(no==)break;
for(jj=j+;jj<j+;jj++)if(s2[i+x][jj]!='M'){no=;break;}if(no==)break;
}if(no==)continue; if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
}
/*
MMMMMM
11MM11
11MM11
11MM11
11MM11
11MM11
MMMMMM
*/
//i
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
for(jj=j;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(x=;x<;x++){
for(jj=j+;jj<j+;jj++)if(s2[i+x][jj]!='M'){no=;break;}if(no==)break;
}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
} /*
1MMMMMMMM
1111MM111
1111MM111
1111MM111
MM11MM111
MMM1MM111
11MMMM111
*/
//j
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
for(jj=j+;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(x=;x<;x++){
for(jj=j+;jj<j+;jj++)if(s2[i+x][jj]!='M'){no=;break;}if(no==)break;
}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue; if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
} /*
MM111111MMM1
MM11111MMM11
MM111MMM1111
MMMMM1111111
MM111MMM1111
MM11111MMM11
MM111111MMMM
*/
//k
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
for(jj=j;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
} /*
MM1111111111
MM1111111111
MM1111111111
MM1111111111
MM1111111111
MM1111111111
MMMMMMMMMMMM
*/
//l
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
if(s2[i+][j+]=='M'){no=;continue;}
for(x=;x<;x++){
for(jj=j;jj<j+;jj++)if(s2[i+x][jj]!='M'){no=;break;}if(no==)break;
}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
} /*
MM1111111111MM
MMMM111111MMMM
MM1MM1111MM1MM
MM11MMMMM111MM
MM1111M11111MM
MM1111111111MM
MM1111111111MM
*/
//m
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
for(jj=j;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(s2[i+][j]!='M'||s2[i+][j+]!='M'||s2[i+][j+]!='M'||
s2[i+][j+]!='M'||s2[i+][j+]!='M'||s2[i+][j+]!='M'||
s2[i+][j+]!='M'||s2[i+][j+]!='M'){no=;continue;}
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(s2[i+][j]!='M'||s2[i+][j+]!='M'||s2[i+][j+]!='M'||
s2[i+][j+]!='M'||s2[i+][j+]!='M'){no=;continue;}
for(x=;x<;x++){
for(jj=j;jj<j+;jj++)if(s2[i+x][jj]!='M'){no=;break;}if(no==)break;
for(jj=j+;jj<j+;jj++)if(s2[i+x][jj]!='M'){no=;break;}if(no==)break;
}if(no==)continue; if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
} /*
MMM111111111MM
MMMM11111111MM
MM1MM1111111MM
MM11MM111111MM
MM1111MM1111MM
MM111111MMM1MM
MM11111111MMMM
*/
//n
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
for(jj=j;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue; if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
} /*
1111MMMMMM1111",
11MMM1111MMM11",
1MMM111111MMM1",
MM1111111111MM",
1MMM111111MMM1",
11MMM1111MMM11",
1111MMMMMM1111",
*/
//o
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
for(jj=j+;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
} /*
MMMMMMMMMMM111",
MM111111111MM1",
MM1111111111MM",
MM111111111MM1",
MMMMMMMMMMM111",
MM111111111111",
MM111111111111",
*/
//p
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
if(s2[i+][j+]=='M'){no=;continue;}
for(jj=j;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
} /*
1111MMMMMM1111",
11MMM1111MMM11",
1MMM111111MMM1",
MM1111111111MM",
1MMM1MMMM1MMM1",
11MMM11MMMMM11",
11111MMMM1MMMM",
*/ //q
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
for(jj=j+;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
} /*
MMMMMMMMMMM111",
MM111111111MM1",
MM1111111111MM",
MM111111111MM1",
MMMMMMMMMMM111",
MM11111111MM11",
MM111111111MMM",
*/
//r
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
for(jj=j;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
} /*
111MMMMMMMM111",
11MM1111111MM1",
1MMM1111111MMM",
111MMMMM111111",
MMM111MMMM1111",
11MMM11111MMM1",
1111MMMMMMM111",
*/
//s
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
for(jj=j+;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
} /*
MMMMMMMMMMMM",
MMMMMMMMMMMM",
11111MM11111",
11111MM11111",
11111MM11111",
11111MM11111",
11111MM11111",
*/
//t
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
for(jj=j;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
}
/*
MM1111111111MM",
MM1111111111MM",
MM1111111111MM",
MM1111111111MM",
MMM11111111MMM",
MMM11111111MMM",
11MMMMMMMMMM11",
*/
//u
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
for(jj=j;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
} /*
MMMM111111MMMM",
1MMM111111MMM1",
1MMM111111MMM1",
11MMM1111MMM11",
111MMM11MMM111",
1111MM11MM1111",
11111MMMM11111",
*/
//v
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
for(jj=j;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
}
/*
MM1111111111MM",
MM1111111111MM",
1MM111MM111MM1",
1MM111MM111MM1",
1MM111MM111MM1",
1MM1MM11MM1MM1",
11MMM1111MMM11",
*/
//w
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
for(jj=j;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue; if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
} /*
MMM111111MMM",
1MMM1111MMM1",
11MMM11MMM11",
1111MMMM1111",
11MMM11MMM11",
1MMM1111MMM1",
MMM111111MMM",
*/
//x
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
for(jj=j;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue; if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
} /*
MMM111111MMM",
1MMM1111MMM1",
11MMM11MMM11",
1111MMMM1111",
11111MM11111",
11111MM11111",
11111MM11111",
*/
//y
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
for(jj=j;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
}
/*
MMMMMMMMMM1",
1111111MM11",
111111MM111",
11111MM1111",
111MM111111",
11MM1111111",
MMMMMMMMMMM"
*/
//z
if(vis[]==){
for(int i=;i<n-;i++){
for(int j=;j<m;j++){
int x,no=,jj;
for(jj=j;jj<j+;jj++)if(s2[i][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j+;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
for(jj=j;jj<j+;jj++)if(s2[i+][jj]!='M'){no=;break;}if(no==)continue;
if(no==){vis[]=;break;}
}
if(vis[]==)break;
}
}
} int main()
{
char s[][];
while(scanf("%d%d",&n,&m)!=EOF)
{
memset(vis,,sizeof(vis));
for(int i=;i<n;i++)
scanf("%s",s[i]);
memset(s2,,sizeof(s2));
for(int i=;i<n;i++)for(int j=;j<m;j++)s2[i][j]=s[i][j];
fun();
memset(s2,,sizeof(s2));
for(int i=n-;i>=;i--)for(int j=m-;j>=;j--)s2[n-i-][m-j-]=s[i][j];
fun(); for(int i=;i<;i++)
if(vis[i]==)printf("%c",'A'+i);
puts("");
}
return ;
}

纯模拟