#define _USE_MATH_DEFINES #include using namespace std; //template #define rep(i,a,b) for(int i=(int)(a);i<(int)(b);i++) #define ALL(v) (v).begin(),(v).end() using ll=long long int; const int inf = 0x3fffffff; const ll INF = 0x1fffffffffffffff; const double eps=1e-12; templateinline bool chmax(T& a,T b){if(ainline bool chmin(T& a,T b){if(a>b){a=b;return 1;}return 0;} ll mod(ll a,ll m){return (a%m+m)%m;} ll mpow(ll a,ll t,ll m){ ll res=1; while(t){ if(t&1)res=mod(res*a,m); a=mod(a*a,m); t>>=1; } return res; } ll minv(ll a,ll m){ ll b=m,u=1,v=0; while(b){ ll t=a/b; a-=t*b; swap(a,b); u-=t*v; swap(u,v); } u=mod(u,m); return u; } int get_root(int p){ //primitive root vector ds; for(int x=1;x*x<=p-1;x++)if((p-1)%x==0){ ds.push_back(x); if(x*x!=p-1)ds.push_back((p-1)/x); } sort(ALL(ds)); ds.pop_back(); for(int x=1;x>h>>w; vector g(h); rep(i,0,h)cin>>g[i]; int res=0; rep(j,0,w){ int sub=0; rep(i,0,h)if(g[i][j]=='o')sub=(sub+mpow(2,i,3))%3; res^=sub; } if(res)puts("First"); else puts("Second"); // int g[21]={}; // rep(x,1,15){ // set st; // rep(d,0,6)if(x-(1<=0)st.insert(g[x-(1<