#include <bits/stdc++.h>
int cut;
int q[100005] = {0};
int totalnode, totaledge, i, j, k, l, a, b, t1, t2;
int c(int q) {
  if (q == 2) {
    return cut;
  } else if (q == cut) {
    return 2;
  } else
    return q;
}
int main() {
  for (i = 0; i < 100005; i++) q[i] = i;
  scanf("%d %d %d", &totalnode, &totaledge, &cut);
  q[cut] = 2;
  q[2] = cut;
  if (totaledge >= totalnode - 1 &&
      (totalnode - 1) * (totalnode - 2) / 2 + 1 >= totaledge) {
    for (i = 1; i <= totalnode - 1; i++) {
      printf("%d %d\n", q[i], q[i + 1]);
      totaledge--;
    }
    for (i = 2; i <= totalnode && totaledge > 0; i++) {
      for (j = i + 2; j <= totalnode && totaledge > 0; j++) {
        printf("%d %d\n", q[i], q[j]);
        totaledge--;
      }
    }
  } else {
    printf("-1");
  }
  return 0;
}
