#include <bits/stdc++.h>
using namespace std;
bool ok[305][305];
bool marked[305];
int main() {
  int n, m, k, p;
  scanf("%d %d %d", &n, &m, &k);
  if (n == k || m > (n * (n - 1)) / 2 - k + 1) {
    printf("-1");
    return 0;
  }
  for (int i = 1; i <= k; i++) {
    scanf("%d", &p);
    marked[p] = 1;
  }
  int now;
  for (int i = 1; i <= n; i++)
    if (!marked[i]) now = i;
  for (int i = 1; i <= n; i++)
    if (i != now) {
      ok[now][i] = ok[i][now] = 1;
      printf("%d %d\n", now, i);
    }
  int COUNT = n - 1;
  for (int i = 1; i <= n; i++)
    if (marked[i]) now = i;
  for (int i = 1; i <= n; i++) {
    if (COUNT == m) break;
    for (int j = i + 1; j <= n; j++) {
      if (COUNT == m) break;
      if (i == now && marked[j]) continue;
      if (j == now && marked[i]) continue;
      if (ok[i][j]) continue;
      ok[i][j] = ok[j][i] = 1;
      printf("%d %d\n", i, j);
      COUNT++;
    }
  }
}
