W, H = map(int, input().split()) M = [list(map(int, input().split())) for i in range(H)] visited = [[0] * W + [-1] for i in range(H)] + [[-1] * (W + 1)] from collections import deque for i in range(H): for j in range(W): if visited[i][j] == 0: que = [] X = M[i][j] if visited[i + 1][j] == 0 and M[i + 1][j] == X: visited[i + 1][j] = 1 que += [i + 1, j, 0] if visited[i][j + 1] == 0 and M[i][j + 1] == X: visited[i][j + 1] = 1 que += [i, j + 1, 1] if visited[i - 1][j] == 0 and M[i - 1][j] == X: visited[i - 1][j] = 1 que += [i - 1, j, 2] if visited[i][j - 1] == 0 and M[i][j - 1] == X: visited[i][j - 1] = 1 que += [i][j - 1, 3] visited[i][j] = 1 que = deque(que) while que: x, y, q = que.popleft(), que.popleft(), que.popleft() if visited[x - 1][y] != -1 and M[x - 1][y] == X and q != 0: if visited[x - 1][y]: print('possible') exit() else: visited[x - 1][y] = 1 que.extend([x - 1, y, 2]) if visited[x + 1][y] != -1 and M[x + 1][y] == X and q != 2: if visited[x + 1][y]: print('possible') exit() else: visited[x + 1][y] = 1 que.extend([x + 1, y, 0]) if visited[x][y - 1] != -1 and M[x][y - 1] == X and q != 1: if visited[x][y - 1]: print('possible') exit() else: visited[x][y - 1] = 1 que.extend([x, y - 1, 3]) if visited[x][y + 1] != -1 and M[x][y + 1] == X and q != 3: if visited[x][y + 1]: print('possible') exit() else: visited[x][y + 1] = 1 que.extend([x, y + 1, 1]) print('impossible')