#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m, v;
  while (scanf("%d%d%d", &n, &m, &v) != EOF) {
    int maxe = (n - 1) * (n - 2) / 2 + 1;
    int mine = n - 1;
    if (!(m >= mine && m <= maxe)) {
      printf("-1\n");
      continue;
    }
    vector<int> vec;
    for (int i = 1; i <= n; ++i) vec.push_back(i);
    swap(vec[v - 1], vec[n - 2]);
    vector<int> mm(n);
    for (int i = 0; i < n - 1; ++i) {
      mm[vec[i] - 1] = vec[i + 1] - 1;
      if (vec[i] < vec[i + 1]) {
        printf("%d %d\n", vec[i], vec[i + 1]);
      } else {
        printf("%d %d\n", vec[i + 1], vec[i]);
      }
    }
    m -= n - 1;
    for (int i = 1; i <= n; ++i) {
      int j;
      for (j = i + 1; j <= n; ++j) {
        if (m == 0) break;
        if (i == vec[n - 1] || j == vec[n - 1]) continue;
        if (mm[i - 1] == j - 1 || mm[j - 1] == i - 1) {
          continue;
        }
        printf("%d %d\n", i, j);
        --m;
      }
      if (j <= n) break;
    }
  }
  return 0;
}
