#include <bits/stdc++.h>
using namespace std;
int a[305];
int main() {
  int n, m, k;
  while (cin >> n >> m >> k) {
    int S, E, Z;
    memset(a, 0, sizeof(a));
    for (int i = 0; i < k; ++i) {
      int s;
      scanf("%d", &s);
      a[s] = 1;
      if (i == 0) S = s;
      if (i == 1) E = s;
    }
    if (S > E) swap(S, E);
    for (int i = 1; i <= n; ++i)
      if (!a[i]) Z = i;
    int maxn = n * (n - 1) / 2;
    if (k == n || m > maxn - 1 - (k - 2)) {
      printf("-1\n");
      continue;
    }
    int w = 0;
    for (int i = 1; i <= n; ++i)
      if (!a[i]) w = i;
    int cnt = n - 1;
    for (int i = 1; i <= n; ++i)
      if (i != Z) printf("%d %d\n", i, Z);
    for (int i = 1; i <= n && cnt < m; ++i)
      for (int j = i + 1; j <= n && cnt < m; ++j) {
        if (i == Z || j == Z) continue;
        if (i == S && j == E) continue;
        if (i == S && a[j]) continue;
        if (a[i] && j == S) continue;
        printf("%d %d\n", i, j);
        ++cnt;
      }
  }
}
