#include <bits/stdc++.h>
using namespace std;
int ABS(int a) {
  if (a < 0) a = -a;
  return a;
}
bool cmp(pair<int, int> a, pair<int, int> b) {
  return (ABS(a.first) + ABS(a.second)) < (ABS(b.first) + ABS(b.second));
}
int main() {
  int n, m, k, i, j;
  int a[310];
  int x;
  int u, v;
  int root;
  scanf("%d%d%d", &n, &m, &k);
  for (i = 0; i <= n; i++) a[i] = 1;
  u = v = 0;
  for (i = 0; i < k; i++) {
    scanf("%d", &x);
    if (0 == u)
      u = x;
    else if (0 == v)
      v = x;
    a[x] = 0;
  }
  if (k == n) {
    cout << -1 << endl;
    return 0;
  }
  for (i = 1; i <= n; i++)
    if (1 == a[i]) break;
  root = i;
  int cnt = (n * (n - 1)) / 2 - (k - 1);
  if (cnt >= m) {
    for (i = 1; i <= n; i++)
      if (i != root) printf("%d %d\n", root, i);
    m -= n - 1;
    for (i = 1; i <= n; i++) {
      for (j = i + 1; j <= n; j++) {
        if (i != root && j != root)
          if ((i == u && !a[j]) || (j == u && !a[i]) || (i == u && j == v) ||
              (i == v && j == u))
            ;
          else {
            if (0 == m) break;
            printf("%d %d\n", i, j);
            m--;
          }
      }
    }
  } else
    cout << -1 << endl;
  return 0;
}
