#include <bits/stdc++.h>
using namespace std;
int n, m, k;
bool a[305] = {0};
int mp[305][305];
bool con[305] = {0};
void sov() {
  int s, cnt = 0, s2;
  for (int i = 1; i <= n; i++)
    if (a[i]) {
      s = i;
      break;
    }
  con[s] = 1;
  for (int i = 1; i <= n; i++)
    if (!a[i]) {
      mp[i][s] = mp[s][i] = 1;
      printf("%d %d\n", i, s);
      cnt++;
      s2 = i;
      con[i] = 1;
    }
  for (int i = 1; i <= n; i++) {
    if (con[i] || s2 == i) continue;
    printf("%d %d\n", s2, i);
    mp[i][s2] = mp[s2][i] = 1;
    cnt++;
    if (cnt == m) break;
  }
  for (int i = 1; i <= n; i++) {
    if (cnt == m) break;
    if (s == i) continue;
    for (int j = 1; j <= n; j++) {
      if (i == j || j == s || mp[i][j]) continue;
      cnt++;
      mp[i][j] = mp[j][i] = 1;
      printf("%d %d\n", i, j);
      if (cnt == m) break;
    }
  }
}
int main() {
  scanf("%d%d%d", &n, &m, &k);
  register int x;
  for (int i = 1; i <= k; i++) scanf("%d", &x), a[x] = 1;
  if (k == n || m > (n - 1) * (n - 2) / 2 + n - k)
    printf("-1");
  else
    sov();
  return 0;
}
