#include<algorithm>
#include<iostream>
#include<vector>

using namespace std;

typedef long long ll;
int S[8000][100];

int main() {
	srand(1337);

	int n, r;
	cin >> n >> r;
	for (int j = 0; j < r; j++)
		for (int i = 0; i < 2*n; i++)
			cin >> S[i][j];

	long long target = ll(r) * ll(3*n+1) * ll(n) / 2;

	for (int j = 0; j < r; j++) {
		vector<int> ord(2*n);
		for (int i=0; i<2*n; i++) ord[i] = i;

		sort(begin(ord), end(ord), [&] (int a, int b) -> bool { return S[a][j] < S[b][j]; });

		vector<int> lowhalf(n);
		for (int i=0; i<n; i++) lowhalf[i] = ord[i];
		for (int _ = 10; _ --> 0; ) {
			random_shuffle(begin(lowhalf), end(lowhalf));

			long long cur_score = 0;
			for (int i = 0; i < n; i++)
				for (int k = 0; k < r; k++)
					cur_score += max(S[lowhalf[i]][k], S[ord[n + n - 1 - i]][k]);
			cerr << j << ": " << cur_score << " vs " << target << endl;
			if (cur_score >= target) {
				cout << "possible" << endl;
				return 0;
			}
		}
	}

	cout << "impossible" << endl;
	return 0;
}
