#include <bits/stdc++.h>
#pragma comment(linker, "/stack:200000000"]
#pragma GCC optimize("Ofast"]
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native"]
using namespace std;
signed main() {
  long long int n, m, v;
  cin >> n >> m >> v;
  v--;
  if (m < n - 1 || m > n * (n - 1) / 2) {
    cout << -1;
    return 0;
  }
  vector<bool> used(n);
  used[v] = true;
  long long int first = 0;
  while (used[first]) first++;
  used[first] = true;
  vector<pair<long long int, long long int>> ans;
  for (long long int i = 0; i < n; i++) {
    if (i != v) {
      ans.push_back({v + 1, i + 1});
      m--;
    }
  }
  for (long long int i = first + 1; i < n && m > 0; i++) {
    if (!used[i]) {
      for (long long int j = i + 1; j < n && m > 0; j++) {
        if (!used[j]) {
          ans.push_back({i + 1, j + 1});
          m--;
        }
      }
    }
  }
  if (m == 0) {
    for (auto i : ans) cout << i.first << " " << i.second << endl;
  } else
    cout << -1;
  return 0;
}
