#include <bits/stdc++.h>
using namespace std;
vector<long long> graph[300000];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long n, m, j, l = 0, p = 0, w, i, flag = 0, k, t, d, q = 0, r = 0, v;
  cin >> n >> m >> v;
  t = 1 + ((n - 1) * 1LL * (n - 2)) / 2;
  if (m > t || m < n - 1) {
    cout << -1;
    return 0;
  } else {
    long long z = n + 1 - v;
    if (z == v) {
      z = 1;
    }
    graph[z].push_back(v);
    m -= 1;
    for (long long i = 1; i <= n; i++) {
      if (i == z) continue;
      for (j = i + 1; j <= n; j++) {
        if (j == z) continue;
        graph[i].push_back(j);
        m -= 1;
        if (m == 0) break;
      }
      if (m == 0) break;
    }
    for (long long i = 1; i <= n; i++) {
      for (auto it : graph[i]) {
        cout << i << " " << it << "\n";
      }
    }
  }
  return 0;
}
