#include <bits/stdc++.h>
using namespace std;
const long long M = 1e5 + 5;
long long is[M], n, m, k, e[301][301];
long long key;
signed main() {
  ios::sync_with_stdio(false);
  cin >> n >> m >> k;
  for (long long i = 1; i <= k; i++) {
    long long x;
    cin >> x;
    is[x] = 1;
    key = x;
  }
  if (k == n || (n - 1) * (n - 2) / 2 + n - k < m) {
    cout << -1;
    return 0;
  }
  for (long long i = 1; i < n; i++) {
    if (i != key && (i + 1) != key) {
      cout << i << ' ' << i + 1 << "\n";
      e[i][i + 1] = 1;
    }
  }
  if (key > 1 && key < n)
    cout << key - 1 << ' ' << key + 1 << "\n", e[key - 1][key + 1] = 1;
  m -= (n - 2);
  for (long long i = 1; i <= n; i++) {
    if (!is[i]) {
      e[i][key] = 1;
      cout << i << " " << key << "\n";
      m--;
      break;
    }
  }
  if (!m) return 0;
  for (long long i = 1; i <= n; i++) {
    for (long long j = i + 1; j <= n; j++) {
      if (e[i][j] || i == key || j == key) continue;
      cout << i << ' ' << j << "\n";
      m--;
      if (!m) return 0;
    }
  }
  for (long long i = 1; i <= n; i++) {
    if (!is[i]) {
      if (e[i][key]) continue;
      cout << i << " " << key << "\n";
      m--;
      if (!m) return 0;
    }
  }
  return 0;
}
