#include <bits/stdc++.h>   using namespace std;   const long long INF = 9223372036854775807;   const long long MOD = 1000000007;   const long double PI = acos(-1);   inline long long power(long long a, long long b, long long z = MOD) {     long long res = 1;     a = (a % z);     while (b) {       if (b & 1) res = (res * a) % z;       a = (a * a) % z;       b = b >> 1;     }     return res;   }   inline long long inverse(long long a, long long z = MOD) {     return power(a, z - 2, z);   }   long long extend(long long a, long long b, long long &x, long long &y) {     if (b == 0) {       x = 1;       y = 0;       return a;     }     long long x1, y1;     long long g = extend(b, a % b, x1, y1);     x = y1;     y = x1 - (a / b) * y1;     return g;   }   inline long long mat_power(long long a, long long b, long long c, long long d,                              long long n, long long z = MOD) {     long long a0 = 1, b0 = 0, c0 = 0, d0 = 1;     while (n) {       if (n & 1) {         long long a1 = a0, b1 = b0, c1 = c0, d1 = d0;         a0 = (a1 * a + b1 * c) % z;         b0 = (a1 * b + b1 * d) % z;         c0 = (c1 * a + d1 * c) % z;         d0 = (c1 * b + d1 * d) % z;       }       long long a1 = a, b1 = b, c1 = c, d1 = d;       a = (a1 * a1 + b1 * c1) % z;       b = (a1 * b1 + b1 * d1) % z;       c = (c1 * a1 + d1 * c1) % z;       d = (c1 * b1 + d1 * d1) % z;       n = n >> 1;     }     return c0;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     int n, m;     cin >> n >> m;     int aray[n][m], arr[n][m];     for (int i = 0; i < n; i++) {       for (int j = 0; j < m; j++) cin >> aray[i][j];     }     for (int i = 0; i < n; i++) {       for (int j = 0; j < m; j++) cin >> arr[i][j];     }     for (int i = 0; i < n; i++) {       for (int j = 0; j < m; j++) {         if (aray[i][j] > arr[i][j]) swap(aray[i][j], arr[i][j]);       }     }     for (int i = 0; i < n; i++) {       for (int j = 1; j < m; j++) {         if (aray[i][j] <= aray[i][j - 1] || arr[i][j] <= arr[i][j - 1]) {           cout <<  Impossible n ;           return 0;         }       }     }     for (int j = 0; j < m; j++) {       for (int i = 1; i < n; i++) {         if (aray[i][j] <= aray[i - 1][j] || arr[i][j] <= arr[i - 1][j]) {           cout <<  Impossible n ;           return 0;         }       }     }     cout <<  Possible n ;     return 0;   }   