cin >> n >> m >> k; for (int i = 1; i <= k; ++i) cin >> a[i], vis[a[i]] = 1; for (int i = 1; i <= n; ++i) if (!vis[i]) b[++b[0]] = i; if (n == k || m > n * (n - 1) / 2 - k + 1) returncout << "-1\n", 0; vector<pair<int, int>> ans; for (int i = 1; i <= n - k; ++i) ans.emplace_back(a[1], b[i]); for (int i = 2; i <= k; ++i) ans.emplace_back(a[i], b[1]); for (int i = 2; i <= k; ++i) for (int j = 2; j <= n - k; ++j) ans.emplace_back(a[i], b[j]); for (int i = 1; i <= n - k; ++i) for (int j = i + 1; j <= n - k; ++j) ans.emplace_back(b[i], b[j]); for (int i = 2; i <= k; ++i) for (int j = i + 1; j <= k; ++j) ans.emplace_back(a[i], a[j]); for (int i = 0; i < m; ++i) cout << ans[i].first << " " << ans[i].second << "\n"; return0; }