#include #include #include using namespace std; typedef pair pii; typedef struct{ int x; int y; }dir; dir dirs[]={ {1,0}, {0,-1}, {-1,0}, {0,1}, }; bool dfs(pii &cur,pii &prev,set&se,const vector>&m){ for(auto &d:dirs){ pii nxt={cur.first+d.x,cur.second+d.y}; if( nxt==prev || nxt.first<0||m[0].size()<=nxt.first || nxt.second<0||m.size()<=nxt.second || m[cur.second][cur.first]!=m[nxt.second][nxt.first] )continue; if(se.find(nxt)!=se.end())return true; se.insert(nxt); if(dfs(nxt,cur,se,m))return true; } return false; } int main(){ int w,h; scanf("%d%d",&w,&h); vector>m(h); for(int y=0;yse; pii cur={x,y}; se.insert(cur); if(dfs(cur,cur,se,m)){ puts("possible"); return 0; } for(auto &e:se){ m[e.second][e.first]=0; } } puts("impossible"); }