#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
const int inf = 0x3f3f3f3f;
int a[310], v[310], mp[310][310];
vector<pair<int, int> > ans;
int main() {
  int n, m, k;
  cin >> n >> m >> k;
  if (n == k || m > n * (n - 1) / 2 - (k - 1)) return 0 * puts("-1");
  for (int i = 1; i <= k; i++) {
    cin >> a[i];
    v[a[i]]++;
  }
  for (int i = 1, j = k + 1; i <= n; i++)
    if (!v[i]) a[j++] = i;
  for (int i = 2; i < n; i++) {
    ans.push_back({a[i], a[i + 1]});
    mp[a[i]][a[i + 1]] = 1;
  }
  ans.push_back({a[1], a[n]});
  mp[a[1]][a[n]] = 1;
  m -= (n - 1);
  for (int i = 1; i <= n && m; i++) {
    for (int j = (i == 1 ? k + 1 : i + 1); j <= n && m; j++) {
      if (!mp[a[i]][a[j]]) {
        m--;
        ans.push_back({a[i], a[j]});
      }
    }
  }
  for (auto i : ans) {
    cout << i.first << " " << i.second << endl;
  }
  return 0;
}
