#include <bits/stdc++.h>
using namespace std;
int n, m, k;
int A[333];
pair<int, int> mp[303];
vector<pair<int, int> > ans;
int main() {
  scanf("%d%d%d", &n, &m, &k);
  for (int i = 1; i <= n; i++) mp[i] = make_pair(0, i);
  for (int i = 0; i < k; i++) {
    scanf("%d", &A[i]);
    mp[A[i]].first = 1;
  }
  sort(mp + 1, mp + n + 1);
  int r = (n * (n - 1)) / 2 - 1;
  for (int i = 3; i <= k; i++) r -= (1);
  if (m == 1 || m * 2 == (n) * (n - 1) || k == n || m > r) {
    printf("-1\n");
    return 0;
  }
  int tmp = (n * (n - 1)) / 2 - n + 1;
  for (int i = 1; i <= n && (int)ans.size() < m; i++)
    for (int j = i + 1; j <= n && (int)ans.size() < m; j++) {
      if (i > 1 && j == n) {
        if (tmp + i > m) continue;
      }
      ans.push_back(make_pair(mp[i].second, mp[j].second));
    }
  for (int i = 0; i < ans.size(); i++) {
    printf("%d %d\n", ans[i].first, ans[i].second);
  }
  return 0;
}
