#include #include #include using namespace atcoder; using mint = modint998244353; using namespace std; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf 1000000001 int main(){ int w,h; cin>>w>>h; vector a(h,vector(w)); rep(i,h){ rep(j,w){ cin>>a[i][j]; } } dsu D(h*w); vector dx = {0,0,1,-1},dy = {1,-1,0,0}; rep(i,h){ rep(j,w){ rep(k,4){ int y = i+dy[k],x = j+dx[k]; if(y<0||y>=h||x<0||x>=w)continue; if(a[i][j]==a[y][x]){ D.merge(i*w+j,y*w+x); } } } } vector> ind(h,vector(w)); auto g = D.groups(); rep(i,g.size()){ rep(j,g[i].size()){ ind[g[i][j]/w][g[i][j]%w] = i; } } vector cnt(g.size(),0); rep(i,h){ rep(j,w){ rep(k,4){ int y = i+dy[k],x = j+dx[k]; if(y<0||y>=h||x<0||x>=w)continue; if(a[i][j]==a[y][x]){ cnt[ind[i][j]]++; } } } } rep(i,g.size()){ if(g[i].size()!=(cnt[i]>>1)+1){ cout<<"possible"<