#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10;
int V, E, tot;
int ans[maxn][2];
int GCD(int i, int j) {
  if (j == 0) {
    return i;
  }
  return GCD(j, i % j);
}
void find() {
  for (int i = 3; i <= V; i++) {
    for (int j = 2; j < i; j++) {
      if (tot == E) {
        return;
      }
      if (GCD(i, j) == 1) {
        ans[tot][0] = i;
        ans[tot][1] = j;
        tot++;
      }
    }
  }
  return;
}
int main() {
  cin >> V >> E;
  if (E < V - 1) {
    printf("Impossible\n");
    return 0;
  }
  for (int i = 2; i <= V; i++) {
    ans[tot][0] = 1;
    ans[tot][1] = i;
    tot++;
  }
  find();
  if (tot < E) {
    printf("Impossible\n");
    return 0;
  } else {
    printf("Possible\n");
    for (int i = 0; i < tot; i++) {
      printf("%d %d\n", ans[i][0], ans[i][1]);
    }
    return 0;
  }
}
