#include using namespace std; const int kMAX_W = 110; const int kMAX_H = 110; int M[kMAX_H][kMAX_H]; bool used[kMAX_H][kMAX_W]; int dh[4] = {1, 0, -1, 0}, dw[4] = {0, 1, 0, -1}; int W, H; bool DFS(int h, int w, int pre_h, int pre_w) { used[h][w] = true; for (int i = 0; i < 4; i++) { int nh = h + dh[i], nw = w + dw[i]; if ((nh == pre_h && nw == pre_w) || nh < 0 || nh >= H || nw < 0 || nw >= W || M[nh][nw] != M[h][w]) continue; if (used[nh][nw] || DFS(nh, nw, h, w)) return true; } return false; } int main() { cin >> W >> H; for (int h = 0; h < H; h++) { for (int w = 0; w < W; w++) { cin >> M[h][w]; } } for (int h = 0; h < H; h++) { for (int w = 0; w < W; w++) { if (!used[h][w] && DFS(h, w, -1, -1)) { cout << "possible" << endl; return 0; } } } cout << "impossible" << endl; return 0; }