#include "bits/stdc++.h" using namespace std; #define print(x) cout< PI; typedef pair V; typedef vector VE; const ll mod = 1000000007; //10^9+7 int w,h; int m[102][102]; int cp[102][102]; int dx[4]={1,0,-1,0}; int dy[4]={0,1,0,-1}; bool check(int y,int x, int _){ if((y>=0&&y=0&&x>w>>h; REP(i,h)REP(j,w)cin>>m[i][j]; REP(_,1001){ REP(i,h)REP(j,w)cp[i][j]=m[i][j]; REP(i,h)REP(j,w)if(cp[i][j]==_){ cp[i][j]=0; queue que; REP(k,4){ int ny=i+dy[k]; int nx=j+dx[k]; if(check(ny,nx,_)==false)continue; cp[ny][nx]=0; V now=make_pair(k,make_pair(ny,nx)); que.push(now); } while(!que.empty()){ V pre=que.front(); PI pred=pre.second; que.pop(); REP(k,4){ if(k==(pre.first+2)%4)continue; int ny=pred.first+dy[k]; int nx=pred.second+dx[k]; if(check(ny,nx,_)==0)continue; if(cp[ny][nx]==0){ print("possible"); return 0; } if(cp[ny][nx]==_){ cp[ny][nx]=0; V next=make_pair(k,make_pair(ny,nx)); que.push(next); } } } } } print("impossible"); }