#include <bits/stdc++.h>
using namespace std;
int n, m, v, sum = 0, k1 = 0;
vector<int> Right, Left;
vector<vector<int> > V;
int main() {
  scanf("%d%d%d", &n, &m, &v);
  V.resize(n);
  --v;
  int n1 = n - 2;
  int n2 = 1;
  sum = (n - 1) * (n - 2) / 2 + 1;
  if (sum < m) {
    cout << -1;
    return 0;
  }
  if (m < n - 1) {
    cout << -1;
    return 0;
  }
  for (int i = 0; i < n; ++i) {
    if (i == v) continue;
    if (k1 < n1) {
      Right.push_back(i);
      ++k1;
    } else
      Left.push_back(i);
  }
  for (int i = 0; i < n; ++i)
    if (i != v) V[v].push_back(i);
  m -= n - 1;
  for (int i = 0; i < n1; ++i) {
    if (!m) break;
    for (int j = i + 1; j < n1; ++j) {
      if (!m) break;
      if (Right[j] != v && Right[i] != v && m) {
        V[Right[i]].push_back(Right[j]);
        --m;
      }
    }
  }
  for (int i = 0; i < n; ++i)
    for (int j = 0; j < V[i].size(); ++j)
      cout << i + 1 << ' ' << V[i][j] + 1 << endl;
  return 0;
}
