#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b) { return !b ? a : gcd(b, a % b); }
long long lcm(long long a, long long b) { return (a / gcd(a, b)) * b; }
int FixMod(int s, int k) { return (s % k + k) % k; }
enum dir {
  DOWN = 0,
  UP,
  RIGHT,
  LEFT,
  DOWN_RIGHT,
  DOWN_LEFT,
  UP_RIGHT,
  UP_LEFT
};
int dir_r[] = {1, -1, 0, 0, 1, 1, -1, -1};
int dir_c[] = {0, 0, 1, -1, 1, -1, 1, -1};
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long n, m, v;
  cin >> n >> m >> v;
  if (m > n * (n - 1) / 2 - (n - 2) || m < n - 1) return !(cout << -1);
  int ok = -1;
  for (int i = 1; i <= n && m; i++) {
    if (i != v) {
      ok = i;
      cout << i << " " << v << '\n';
      m--;
      break;
    }
  }
  for (int i = 1; i <= n && m > 0; i++) {
    if (i == ok) continue;
    for (int j = i + 1; j <= n && m > 0; j++) {
      if (j == ok) continue;
      cout << i << " " << j << '\n';
      m--;
    }
    if (i == n - 1 && m) i = 1;
  }
  return 0;
}
