#include <bits/stdc++.h>
using namespace std;
int n, m, k, x, num;
bool vis[310], iss[310][310], viss[310];
void init() {
  scanf("%d%d%d", &n, &m, &k);
  for (int i = 1; i <= n; i++) iss[i][i] = 1;
  for (int i = 1; i <= k; i++) scanf("%d", &x), vis[x] = 1;
  num = n - k;
  int maxx = (n - 1) * (n - 2) / 2 + num;
  if (m > maxx || k == n) {
    printf("-1");
    return;
  }
  int t, tt = 1;
  int calc = 0;
  while (!vis[tt]) tt++;
  viss[tt] = 1;
  for (int i = 1; i <= n; i++) {
    if (!vis[i]) {
      t = i;
      viss[t] = 1;
      printf("%d %d\n", t, tt);
      iss[t][tt] = iss[tt][t] = 1;
      calc++;
    }
  }
  for (int i = 1; i <= n; i++) {
    if (viss[i]) continue;
    printf("%d %d\n", i, t);
    iss[i][t] = iss[t][i] = 1;
    calc++;
    if (calc == m) break;
  }
  for (int i = 1; i <= n; i++) {
    if (calc == m) break;
    if (i == tt) continue;
    for (int j = 1; j <= n; j++) {
      if (j == tt) continue;
      if (iss[i][j]) continue;
      printf("%d %d\n", i, j);
      calc++;
      iss[i][j] = iss[j][i] = 1;
      if (calc == m) break;
    }
  }
}
int main() {
  init();
  return 0;
}
