#include <bits/stdc++.h>
using namespace std;
class Solution {
 public:
  vector<pair<int, int>> solve(int n, int m, int v) {
    int mn = n - 1;
    long long mx = (n - 1) * 1LL * (n - 2) / 2 + 1;
    if (!(mn <= m && m <= mx)) {
      return {};
    }
    vector<pair<int, int>> res;
    int a = -1, b = -1;
    vector<char> used(n, false);
    if (v == 0) {
      a = 1;
      b = 0;
    } else {
      a = 0;
      b = v;
    }
    used[a] = used[b] = true;
    res.emplace_back(b, a);
    vector<int> V;
    for (int i = 0; i < n; ++i) {
      if (!!!used[i]) {
        V.push_back(i);
      }
    }
    int rem = m - 1;
    for (auto v : V) {
      res.emplace_back(b, v);
      --rem;
    }
    for (int i = 0; i < V.size() && rem > 0; ++i) {
      for (int j = i + 1; j < V.size() && rem > 0; ++j) {
        int u = V[i], v = V[j];
        res.emplace_back(u, v);
        --rem;
      }
    }
    return res;
  }
};
int main(int argc, char** argv) {
  ios::sync_with_stdio(false);
  cin.tie(0);
  Solution sol;
  int n, m, v;
  cin >> n >> m >> v;
  --v;
  auto res = sol.solve(n, m, v);
  if (!res.empty()) {
    for (auto& p : res) {
      cout << p.first + 1 << " " << p.second + 1 << '\n';
    }
  } else {
    cout << "-1\n";
  }
  return 0;
}
