#include <bits/stdc++.h>
using namespace std;
int gcd(int a, int b) {
  while (b > 0) {
    int t = a % b;
    a = b;
    b = t;
  }
  return a;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n, m;
  cin >> n >> m;
  if (m < n - 1) {
    cout << "Impossible\n";
    return 0;
  }
  vector<pair<int, int>> edges;
  for (int i = 2; i <= n; i++) edges.emplace_back(1, i);
  m -= n - 1;
  for (int u = 2; m > 0 && u < n; u++) {
    for (int v = u + 1; v <= n; v++) {
      if (gcd(u, v) == 1) {
        edges.emplace_back(u, v);
        if (--m == 0) break;
      }
    }
  }
  if (m == 0) {
    cout << "Possible\n";
    for (auto e : edges) cout << e.first << ' ' << e.second << '\n';
  } else {
    cout << "Impossible\n";
  }
}
