#include<bits/stdc++.h>
#define arrsize 300001
#define dpsize 1001
#define vpp vector<PP>
#define vll vector<ll>
#define vcc vector<char>
#define endl "\n"
#define vbb vector<bool>
#define w(t) while(t--)
#define PP pair<ll,ll>
#define test(x) ll t; cin>>t; w(t) x()
#define __lb lower_bound
#define __ub upper_bound
#define szs(x) x.length()
#define szv(x) x.size()*1ll
#define INF 1999999996000000010
#define ll long long int
#define takeINP(arr,n) for(long long int i=0;i<n;i++) cin>>arr[i];
#define f(i,s,e) for(long long int i=s;i<e;i++)
#define cf(i,s,e) for(long long int i=s;i<=e;i++)
#define rf(i,e,s) for(long long int i=e-1;i>=s;i--)
#define mem(arr) memset(arr,0,sizeof(arr));
#define MOD 1000000007
#define rsz(x,n) x.resize(n)
#define cbit(x) __builtin_popcount(x)
#define rsr(x,n) x.reserve(n)
#define mp(a,b) make_pair(a,b)
#define float long double
#define pb push_back
#define print(arr,s,e) f(i,s,e) cout<<arr[i]<<" "; cout<<endl;
#define all(v) v.begin(),v.end()
#define ff first
#define ss second
#define vll vector<ll>
#define triplet pair<ll,pair<ll,ll> >
#define MITR(a,b) map<a,b>::reverse_iterator
using namespace std;
using namespace chrono;
bool rcomp(PP a,PP b){
return a>b;
}
ll cost[arrsize];
vll edges[arrsize];
ll deg[arrsize] = {};
void dfs(ll src, vll &visited, ll col) {
visited[src] = col;
for (auto itr : edges[src]) {
if (visited[itr] != -1) continue;
dfs(itr, visited, col);
}
}
void solve() {
bool cant = false;
ll n, m; cin >> n >> m;
f(i, 0, n) cin >> cost[i];
cf(i, 1, m) {
ll x, y; cin >> x >> y;
x--; y--;
edges[x].push_back(y);
edges[y].push_back(x);
deg[x]++; deg[y]++;
if (deg[x] > cost[x] or deg[y] > cost[y]) {
cant = true;
}
}
if (cant) {
cout << "-1" << endl;
return;
}
vll visited(n, -1);
ll col = 0;
f(i, 0, n) {
if (visited[i] != -1) continue;
dfs(i, visited, col);
col++;
}
vector<vpp> grps(col);
f(i, 0, n) {
if (deg[i] != cost[i]) grps[visited[i]].push_back({cost[i] - deg[i], i});
}
set<PP> s;
ll sum = 0;
f(i, 0, col) {
sort(all(grps[i]), rcomp);
if (grps[i].size() < 1) {
cant = true;
break;
}
else {
for (auto itr : grps[i]) sum += (itr.ff);
s.insert(grps[i].back());
grps[i].pop_back();
}
}
cant = cant or sum != 2 * (n - m - 1);
if (cant) {
cout << "-1" << endl;
return;
}
vpp ret;
while (s.size() > 1) {
// for (auto elem : s) cout << elem.ff << " " << elem.ss << endl;
// cout << "------" << endl;
auto elem1 = *s.begin();
s.erase(s.begin());
auto elem2 = *s.rbegin();
s.erase(elem2);
elem1.ff--; elem2.ff--;
ret.push_back({elem1.ss, elem2.ss});
if (elem1.ff != 0) {
cout << "-1" << endl;
return;
}
else if (grps[visited[elem1.ss]].size()) {
s.insert(grps[visited[elem1.ss]].back());
grps[visited[elem1.ss]].pop_back();
}
if (elem2.ff != 0) s.insert(elem2);
else{
if (grps[visited[elem2.ss]].size()) {
s.insert(grps[visited[elem2.ss]].back());
grps[visited[elem2.ss]].pop_back();
}
}
}
if (s.size()) {
cout << "-1" << endl;
return;
}
for (auto itr : ret) cout << itr.ff + 1 << " " << itr.ss + 1 << endl;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
solve();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBhcnJzaXplIDMwMDAwMQojZGVmaW5lIGRwc2l6ZSAxMDAxCiNkZWZpbmUgdnBwIHZlY3RvcjxQUD4KI2RlZmluZSB2bGwgdmVjdG9yPGxsPgojZGVmaW5lIHZjYyB2ZWN0b3I8Y2hhcj4KI2RlZmluZSBlbmRsICJcbiIKI2RlZmluZSB2YmIgdmVjdG9yPGJvb2w+CiNkZWZpbmUgdyh0KSB3aGlsZSh0LS0pCiNkZWZpbmUgUFAgcGFpcjxsbCxsbD4KI2RlZmluZSB0ZXN0KHgpIGxsIHQ7IGNpbj4+dDsgdyh0KSB4KCkKI2RlZmluZSBfX2xiIGxvd2VyX2JvdW5kCiNkZWZpbmUgX191YiB1cHBlcl9ib3VuZAojZGVmaW5lIHN6cyh4KSB4Lmxlbmd0aCgpCiNkZWZpbmUgc3p2KHgpIHguc2l6ZSgpKjFsbAojZGVmaW5lIElORiAxOTk5OTk5OTk2MDAwMDAwMDEwCiNkZWZpbmUgbGwgbG9uZyBsb25nIGludAojZGVmaW5lIHRha2VJTlAoYXJyLG4pIGZvcihsb25nIGxvbmcgaW50IGk9MDtpPG47aSsrKSBjaW4+PmFycltpXTsKI2RlZmluZSBmKGkscyxlKSBmb3IobG9uZyBsb25nIGludCBpPXM7aTxlO2krKykKI2RlZmluZSBjZihpLHMsZSkgZm9yKGxvbmcgbG9uZyBpbnQgaT1zO2k8PWU7aSsrKQojZGVmaW5lIHJmKGksZSxzKSBmb3IobG9uZyBsb25nIGludCBpPWUtMTtpPj1zO2ktLSkKI2RlZmluZSBtZW0oYXJyKSBtZW1zZXQoYXJyLDAsc2l6ZW9mKGFycikpOwojZGVmaW5lIE1PRCAxMDAwMDAwMDA3CiNkZWZpbmUgcnN6KHgsbikgeC5yZXNpemUobikKI2RlZmluZSBjYml0KHgpIF9fYnVpbHRpbl9wb3Bjb3VudCh4KQojZGVmaW5lIHJzcih4LG4pIHgucmVzZXJ2ZShuKQojZGVmaW5lIG1wKGEsYikgbWFrZV9wYWlyKGEsYikKI2RlZmluZSBmbG9hdCBsb25nICBkb3VibGUKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBwcmludChhcnIscyxlKSBmKGkscyxlKSBjb3V0PDxhcnJbaV08PCIgIjsgY291dDw8ZW5kbDsKI2RlZmluZSBhbGwodikgdi5iZWdpbigpLHYuZW5kKCkKI2RlZmluZSBmZiBmaXJzdAojZGVmaW5lIHNzIHNlY29uZAojZGVmaW5lIHZsbCB2ZWN0b3I8bGw+CiNkZWZpbmUgdHJpcGxldCBwYWlyPGxsLHBhaXI8bGwsbGw+ID4KI2RlZmluZSBNSVRSKGEsYikgbWFwPGEsYj46OnJldmVyc2VfaXRlcmF0b3IKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdXNpbmcgbmFtZXNwYWNlIGNocm9ubzsKYm9vbCByY29tcChQUCBhLFBQIGIpewogICAgcmV0dXJuIGE+YjsKfQoKbGwgY29zdFthcnJzaXplXTsKdmxsIGVkZ2VzW2FycnNpemVdOwpsbCBkZWdbYXJyc2l6ZV0gPSB7fTsKCnZvaWQgZGZzKGxsIHNyYywgdmxsICZ2aXNpdGVkLCBsbCBjb2wpIHsKICAgIHZpc2l0ZWRbc3JjXSA9IGNvbDsKICAgIGZvciAoYXV0byBpdHIgOiBlZGdlc1tzcmNdKSB7CiAgICAgICAgaWYgKHZpc2l0ZWRbaXRyXSAhPSAtMSkgY29udGludWU7CiAgICAgICAgZGZzKGl0ciwgdmlzaXRlZCwgY29sKTsKICAgIH0KfQoKdm9pZCBzb2x2ZSgpIHsKICAgIGJvb2wgY2FudCA9IGZhbHNlOwogICAgbGwgbiwgbTsgY2luID4+IG4gPj4gbTsKICAgIGYoaSwgMCwgbikgY2luID4+IGNvc3RbaV07CiAgICBjZihpLCAxLCBtKSB7CiAgICAgICAgbGwgeCwgeTsgY2luID4+IHggPj4geTsKICAgICAgICB4LS07IHktLTsKICAgICAgICBlZGdlc1t4XS5wdXNoX2JhY2soeSk7CiAgICAgICAgZWRnZXNbeV0ucHVzaF9iYWNrKHgpOwogICAgICAgIGRlZ1t4XSsrOyBkZWdbeV0rKzsKICAgICAgICBpZiAoZGVnW3hdID4gY29zdFt4XSBvciBkZWdbeV0gPiBjb3N0W3ldKSB7CiAgICAgICAgICAgIGNhbnQgPSB0cnVlOwogICAgICAgIH0KICAgIH0KICAgIGlmIChjYW50KSB7CiAgICAgICAgY291dCA8PCAiLTEiIDw8IGVuZGw7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgdmxsIHZpc2l0ZWQobiwgLTEpOwogICAgbGwgY29sID0gMDsKICAgIGYoaSwgMCwgbikgewogICAgICAgIGlmICh2aXNpdGVkW2ldICE9IC0xKSBjb250aW51ZTsKICAgICAgICBkZnMoaSwgdmlzaXRlZCwgY29sKTsKICAgICAgICBjb2wrKzsKICAgIH0KICAgIHZlY3Rvcjx2cHA+IGdycHMoY29sKTsKICAgIGYoaSwgMCwgbikgewogICAgICAgIGlmIChkZWdbaV0gIT0gY29zdFtpXSkgZ3Jwc1t2aXNpdGVkW2ldXS5wdXNoX2JhY2soe2Nvc3RbaV0gLSBkZWdbaV0sIGl9KTsKICAgIH0KCiAgICBzZXQ8UFA+IHM7CiAgICBsbCBzdW0gPSAwOwogICAgZihpLCAwLCBjb2wpIHsKICAgICAgICBzb3J0KGFsbChncnBzW2ldKSwgcmNvbXApOwogICAgICAgIGlmIChncnBzW2ldLnNpemUoKSA8IDEpIHsKICAgICAgICAgICAgY2FudCA9IHRydWU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgZm9yIChhdXRvIGl0ciA6IGdycHNbaV0pIHN1bSArPSAoaXRyLmZmKTsKICAgICAgICAgICAgcy5pbnNlcnQoZ3Jwc1tpXS5iYWNrKCkpOwogICAgICAgICAgICBncnBzW2ldLnBvcF9iYWNrKCk7CiAgICAgICAgfQogICAgfQogICAgY2FudCA9IGNhbnQgb3Igc3VtICE9IDIgKiAobiAtIG0gLSAxKTsKICAgIGlmIChjYW50KSB7CiAgICAgICAgY291dCA8PCAiLTEiIDw8IGVuZGw7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgdnBwIHJldDsKICAgIHdoaWxlIChzLnNpemUoKSA+IDEpIHsKICAgICAgICAvLyBmb3IgKGF1dG8gZWxlbSA6IHMpIGNvdXQgPDwgZWxlbS5mZiA8PCAiICIgPDwgZWxlbS5zcyA8PCBlbmRsOwogICAgICAgIC8vIGNvdXQgPDwgIi0tLS0tLSIgPDwgZW5kbDsKICAgICAgICBhdXRvIGVsZW0xID0gKnMuYmVnaW4oKTsKICAgICAgICBzLmVyYXNlKHMuYmVnaW4oKSk7CiAgICAgICAgYXV0byBlbGVtMiA9ICpzLnJiZWdpbigpOwogICAgICAgIHMuZXJhc2UoZWxlbTIpOwogICAgICAgIGVsZW0xLmZmLS07IGVsZW0yLmZmLS07CiAgICAgICAgcmV0LnB1c2hfYmFjayh7ZWxlbTEuc3MsIGVsZW0yLnNzfSk7CgogICAgICAgIGlmIChlbGVtMS5mZiAhPSAwKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIi0xIiA8PCBlbmRsOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKGdycHNbdmlzaXRlZFtlbGVtMS5zc11dLnNpemUoKSkgewogICAgICAgICAgICBzLmluc2VydChncnBzW3Zpc2l0ZWRbZWxlbTEuc3NdXS5iYWNrKCkpOwogICAgICAgICAgICBncnBzW3Zpc2l0ZWRbZWxlbTEuc3NdXS5wb3BfYmFjaygpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGVsZW0yLmZmICE9IDApIHMuaW5zZXJ0KGVsZW0yKTsKICAgICAgICBlbHNlewogICAgICAgICAgICBpZiAoZ3Jwc1t2aXNpdGVkW2VsZW0yLnNzXV0uc2l6ZSgpKSB7CiAgICAgICAgICAgICAgICBzLmluc2VydChncnBzW3Zpc2l0ZWRbZWxlbTIuc3NdXS5iYWNrKCkpOwogICAgICAgICAgICAgICAgZ3Jwc1t2aXNpdGVkW2VsZW0yLnNzXV0ucG9wX2JhY2soKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGlmIChzLnNpemUoKSkgewogICAgICAgIGNvdXQgPDwgIi0xIiA8PCBlbmRsOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGZvciAoYXV0byBpdHIgOiByZXQpIGNvdXQgPDwgaXRyLmZmICsgMSA8PCAiICIgPDwgaXRyLnNzICsgMSA8PCBlbmRsOwp9CgppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIHNvbHZlKCk7Cn0=