#include <bits/stdc++.h>
using namespace std;
const long long INF = 999999999999999999;
const double PI = acos(-1.0);
void stop() { exit(0); }
long long n, m;
long long k = 0;
pair<long long, long long> ans[100005];
int gcd(int a, int b) {
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> m;
  if (m > n * (n - 1) / 2 || m < n - 1) {
    cout << "Impossible";
    stop();
  }
  for (long long i = 2; i <= n; i++) {
    ans[k].first = 1;
    ans[k].second = i;
    m--;
    k++;
    if (m <= 0) break;
  }
  if (m > 0) {
    for (long long i = 2; i <= n; i++) {
      if (m <= 0) break;
      for (long long j = i + 1; j <= n; j++) {
        if (gcd(i, j) == 1) {
          ans[k].first = i;
          ans[k].second = j;
          k++;
          m--;
          if (m <= 0) break;
        }
      }
    }
  }
  if (m > 0) {
    cout << "Impossible";
  } else {
    cout << "Possible" << endl;
    for (long long i = 0; i < k; i++) {
      cout << ans[i].first << " " << ans[i].second << endl;
    }
  }
  stop();
}
