#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define M 37 #define FOR(i, a, b) for(int i=(a); i<=(b); i++) #define FORD(i, a, b) for(int i=(a); i>=(b); i--) #define REP(i, n) for(int i=0; i<(n); i++) #define ALL(x) (x).begin(), (x).end() #define MP make_pair #define PB push_back #define X first #define Y second #define FI first #define SE second #define FORE(i, c) for(__typeof((c).begin) i = (c).begin(); i!=(c).end(); ++i) #define SIZE(x) ((int)(x).size()) typedef vector VI; typedef long long ll; typedef pair PII; int t[M][M],u[M][M]; int main() { int n,m; char s[M]; while(scanf("%d %d",&n,&m) && n) { int ret=n*m+3; REP(i,n) { scanf("%s",s); REP(j,m) t[i][j]=s[j]=='X'; } if(m>n) { int x=max(m,n); REP(i,x) FOR(j,i+1,x) swap(t[i][j],t[j][i]); swap(m,n); } // printf("%d %d\n",n,m); // REP(i,n) {REP(j,n) printf("%d",t[i][j]); printf("\n");} REP(ma,1<