#include <bits/stdc++.h>
using namespace std;
int n, m, k;
int a[305];
int u, v, chosen;
int adj[305][305];
int main() {
  cin >> n >> m >> k;
  int in;
  for (int i = (1); i <= (k); i++) {
    cin >> in;
    a[in] = 1;
  }
  for (int i = (1); i <= (n); i++) {
    if (a[i]) {
      if (!u)
        u = i;
      else if (!v)
        v = i;
    } else if (!chosen)
      chosen = i;
  }
  if (k == n) {
    cout << -1 << endl;
    return 0;
  }
  vector<pair<int, int> > res;
  for (int i = (1); i <= (n); i++)
    if (i != chosen) res.push_back(make_pair(chosen, i));
  m -= n - 1;
  for (int i = 1; i <= n && m; i++)
    for (int j = i + 1; j <= n && m; j++)
      if (i != chosen && j != chosen && i != v && j != v)
        res.push_back(make_pair(i, j)), m--;
  for (int i = 1; i <= n && m; i++)
    if (i != chosen && i != u && !a[i]) res.push_back(make_pair(v, i)), m--;
  if (m)
    cout << -1 << endl;
  else
    for (typeof(res.begin()) it = res.begin(); it != res.end(); it++)
      cout << it->first << ' ' << it->second << endl;
  return 0;
}
