#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  int n, m;
  cin >> n >> m;
  vector<vector<int> > A(n, vector<int>(m)), B(n, vector<int>(m));
  for (int x = 0; x < n; x++)
    for (int y = 0; y < m; y++) cin >> A[x][y];
  for (int x = 0; x < n; x++)
    for (int y = 0; y < m; y++) cin >> B[x][y];
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++)
      if (A[i][j] < B[i][j]) swap(A[i][j], B[i][j]);
  }
  bool legal = true;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      if (i + 1 < n && A[i][j] >= A[i + 1][j]) legal = false;
      if (j + 1 < m && A[i][j] >= A[i][j + 1]) legal = false;
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      if (i + 1 < n && B[i][j] >= B[i + 1][j]) legal = false;
      if (j + 1 < m && B[i][j] >= B[i][j + 1]) legal = false;
    }
  }
  if (legal)
    cout << "Possible\n";
  else
    cout << "Impossible\n";
}
