// Slower C++ solution:
/*!|||||||!!!!!!!!!!!!!!!!!!|%%$&&&&&&&&&&&&&|'`......```':'':!;.  ......````':!;..

||||||||||||!!!!!!!!!!!!!!!!!!!;;;;;!|%$$&&&|'..  ....``'''''::`  ......`````';:.

||||||||||||||||||||||!!!!!!!!!!;;;;;;;;;;;'`..  ....``'''''':` ........````':'.

|||||||||%%||%%|||||||||||||||||!;;;;;;;;'....   ....`````'''`..........````''.

%%%%%%%%%%%%%%%%%%|%||||%%|%%%%|!;!;;;;:.       ....```````'::'`........`````.

$$$$$$$%%$%%$$$$$%%%%%%%%%%%%%%|!!!!;'.        ....````````';|!!!!:`....```..

$$$$$$%%%$%%$$$$$%%%%%%%%%%%%%%!;!!;`          ....```````':!!!!!!!!|||;'`.

$$$%$%|%%||%%%%%%%%%%||%%%%%|%|!;!!:.         ....````````:!;;;!;;!!|%$$$$|:`

%%%%%||||||||||||||||||||||||||!;!;'`.        ....```````';!!!!!!!!||;';%$&@@%:`.

|||||||||!!|||||||||||||||||||!;!!:':'.       ..```''```';!!!!!!!||%$$%!` .'|&@@%:`. .

||||||||!!!|||||||||||||||||||!;!;::;;:`     ..````'''`';;!!!!!!|%%$$$$&&%'   .;&#@!'....

|||||||!!!!|||||||||||||||||||!;!;:;;;;;'.  ..```''''`:!!!!!;!!|%$$$$&&&&&@$:.   .;&#$:....

|||!||||!!||||||||||||||||||||!;!::;;;;;;;`..```''':':;!!!!!!!!|%$$&&&&&&@&@#$:.   .`!@$:...

|||!|||!!!|||||||||||||||||||!!;;:;;;;;;;!!;'`'''':':!;;;;;!!|||||%$&&&&@@@@@@@%`......:$$:...

||!!||!!!!!||||||||||||||||||!!;;:;;;;;;;!!|!;'''``'':;!!;!!;!|$$$%|%&&&@@@@@@@#&;.......'%|`..

||!!||!!!!!!|||||||||||||||!!!!;;:;;;;;;:''::::;;!;;;;':!!!!!!!!!%$&$|%&@@@@@@#@@&!`.......`|;..

||!!|!!!!!!!||||||||||||||||||!;;:;;'````:!%%%%|;:;;:::::;|!!||!!!!|$&$%%&@@&@@##@&!'........;|'.

|!!!|!!!!!!!|||||||||||||||!!!!;:'```';!!||!!!|!!;;;;:::::;%%||%%|||||%&$%%&@@@@@##&;`` ......'!:.

|!!!!!!!!!!!!|||||||||||||!!!!!;::;;;;;:;!!!|||||!!;;;;;;;;!%$%|%$$%||||%$$%$&@@@@#@$:``      .`''.

|!!!||!!!!!!!||||||||||||!!!!!!!;;;:::;;!!|||||||||!!;;;;;;;;|$%|%%$$$%|||%%$$&@&@@#@!.`'.     ...`.

|!!!||!!!!!!!||||||||||||!!!!!!!;:;;;;;!!!!!|||||||||!!;;;;;;;|$$||%$$&&$%%%%%$&&&&@@@!.``.    ....`.

|!!!||!!|!!||!|||||||||||!!!!!!!;;;;;;;!!||||||||||!!!;;;;;;;;;|$$||$$$&&&$%%%|%$&&&@@@; .`.    .. ...

|!!!||!!||!!|!!|||||||||||!!!!!!!;;;;;!!||||||||!!!|||||!!;;;;;;|$$|!$$$&&&&$%%|%$&&&&@$' .`.   ..  ..

|!!!||!!||!!||!|||||||||||!!!!!!!;;;;;!||||||!!!|||||||||!::'::::!$$!!%$$&&&&$$%!!%$$&&&!. .`.  ..

|!!!|||!|||!!|!!|||||||||||!!!!!!!;;;!!||||!!|||||||||!;;!!!!!!;;;|$%!|$$$&&&&&$|`.;$$&&|`  .`...

|!!!!||!||||!!|!!||||||||||!!!!!!!!!;!|||!||||||||!!!!||!:'`.`:;!!!%$%!|$$$&&&&&$;  '%$&$;   ``

|!!!!||!!||||!!|!!|||||||%||!!!!!!!!!!||||||||||!!!|!:.      ....`';|||!|$$&&&&&@|`  '%&$%:   ..

|!!!!|||||||||!|||!||||||%%|!!|!!!!!!!||||||||!!!;` ...      ...';||%$|;!%$$&&&&@$:   :$&$$|.  ..

||!!!||||||||||!!||||||||%%||!!|!!!!!!|||||||!!'..```..``... `:;;;!|%$$|!|%$&&&&&&;   '|$%:!$: ...

||!;!|||||||||||!!%|||||%%%%|||||!|!!|||||||!'..```.`'```..`!%!!%%%%|$$||!|$$&&&&&;   ';!%: `|%`..

||!!!!!|||||%||||!!%%||%%%%%%|||||||!||||||;:`.``.`:;;`.':```:':|%%%%$$%|!;|&&&&&$:   ''`!;    :|:.

|||!!!!!||||%%%|%%||%%|%%%$$%|||%|!||!||||!:`....';;!|%;.```''::!%%%|%$$$|';$&&&&%'  .`  ::       .`''`. .``.

|||!!!!!||||%%%%%%%|||%%%$$$$%|%%%||%|!||!:```....`;|%$$|'':`'!;!%%%%%%$&@%!%&$$&!. .`.  ``.      .

|||!!!|!!|%%%%%%%%%%%||%%%$$$%|%%%%||%|!|!!|||||||!;::|$$$%|%%%!!|%%%%%%$&&&$$$$%' .`    ..

|||!!!||!!|%%%%%%%%%%%%||%%%$$%|%%$%|%%!!|||||||||||||||!!!||||%%%%%%%%%$$$$$$$$&%:.     ..

||||!!|%|!;!%%%%%%%%%%%%%%|%%%$||%$%%|%|!!||||||||||||||%%%%%%%%$$$%%%%$$$$%%$$$&&&&&&$%'..

!|||!!!|%|!;!%%%%%%%%%%%%%%%|%%%||%%%||%|!!!||||||||||||%%%%%%%%%%%%%%%$$$$%%$$$$$$$$$$%'

;!||!!!|%%%|!;|%%%%%%%%%%%%%%%%|%||%%%!!||!!!|%%||||||%%%%%%%%%%%%%%%%$$$$%%%%%$$$$$$$$!`

;;!||!!!|%%||!;!||%%%%%%%%%%%%%%%||%%%|!!|||!!!|%$%|||%%%%%%%%%%%%%%%%%%%%%%%$$$$$$$$$$;.

;;;||!!!!|%%||!;;!|%%%%%%%|||||%%|||||||!!||||||||%$%|%%%%%%%%%%%%%%%%$%%%%%$$$$$$$$$$%'

!!;!|!;;!!|%%|||!;!||%%%||||||||||||||||!!|%||||||||%%||%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$!`

!!;;!!;;!!!||||||!;;!|||||||||||||||!||||!;;|%%%%%%%|%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$%'

!!!;;!!;;!!!||||||!!;;!||||||||||||||!||||!!!!%$%|%%%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$%'

!!!!;;!!;;;!!!|||||!!::;|||||!|||||||!!|||||!!!|$$%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$&&&$:

;;!!!!;!;;;;!!!|||||!!;::;!|!!!!||||||!!|||%%|!!!%&%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$&$!`

|!!!!;!;;;;::;!!!||!||!;;;;;!!!!!!|||||!!|||%%|||!|$&$%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$%!`

:::;!;;;;::;::;;!!|||!!!!;;;;;!!!!!!||||!!|||%$%%||||$&$%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$%'

;;;;;!!!!!;:::;;:;!!||!!!!!;;;;;!!!!!!||||!!||%$%%%%%%%%$$%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$:

;;;;;;;;;!!!;::;;;:;!!|||||!!!!;;;;!!!!!|||||||%$$%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$!.

;;;;;;;;:::::::::;;;;;;!||!!!!!!!!;;;!!!!!||||||||$$%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$&!.

;;;;;;;::;;:::;;;;:;;;;;;;;!!!|!!!!!!;;;!!!!!|%%||||%$%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$&%`

;;;;;;;:::;;::;;;;;;;;;;;;::;!!!!!!!!|!;!!!!!!!|%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&:

;;;;;;;::;::;:;;;;;;;;;!!!!!!!;;!!|||||!!!|!!!!!!!|%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$&&|`

;;;;;;;::;;;::;;;;;;;;;;!!!!!!!!!||||||||;!!|||||||||%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$&&!.

;;;;;;;::;;;;::;;;;;;;;;;!!!!!!!!|||||||||;;;!!|||||||||%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$&|`

!;;;;;;;::;;;:;;;;;;;;;;;!!!!!!!!!|||||||%!;;;;;!||||||||||%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$!.

;!;;;;;;::;;;:;;;;::;;;;;!!!!!!!!!|||||||%%!;;;;;;!!!|||||||%%%%%%%%%%%%%%%%%%$$$$$$$$$$&|`

:;!!;;;;:::;;;:;;;:::;;;;;!!!!!!!!||||||||$|;;;;;;;;!!!!||||||||%%%%%%%%%%%%%%%%%%%$$$|'

::;!!;;;::::;;:;;;;::;;;;;;!!!!!!!!|||||||$$!;;;;;;;;;;;!!!!!||||||%%%%%%%%%%%%|!:`.

:::;!!;;;:::;;;;;;;:::;;;;;!!!!!!!!||%||||%&%!;;;;;;;;;;;;!!!!!!!!!!!|!;:`.

::::;!!!;::::;::;;;::::;;;;;!!!!!!!!|%%|||!%&%;;;;;;;;;;;;;;;;;;;;;%|`

:::::;!!!;:::::::;;:::::;;;;!!!!!!!!||%%%%!;%$|;;;;;;;;;;;;;;;;;;%@@$:

::::::;!!!:::::':;;::::::;;;;;!!|!!!||%$%%|!;%$!;;;;;;;;;;;;;;;;|$&@@|`

:::::':;;!;::::'';;;::::::;;;;!!!|!!!||%$%%|;;%%;;;;;;;;;;;;;;!||%$&#@|`

::::::':;;;:::''':;;:::::::;;;!!!||!!!|%$$%%|;;||;;;;;;;;;;;!||||%%%&#@%'

:::::::':;;;::'. ';;::::::::;;;!!!|!!!||%$$$%;;;||;;;;;;;;;|%%|||||%%&@@*/

#include <bits/stdc++.h>

using namespace std;



map<long long,int> dy;

int n;

long long d[100005];

int sz[100005];

vector<int> son[100005];

long long sum=0;

int dep[100005];

vector<pair<int,int> > ans;



void dfs(int now,int lst){

	dep[now]=dep[lst]+1;

	sum+=dep[now];

	for(int i=0;i<son[now].size();i++){

		int to=son[now][i];

		if(to==lst){

			continue;

		}

		dfs(to,now);

	}

}



int main(){

	scanf("%d",&n);

	for(int i=1;i<=n;i++){

		scanf("%lld",d+i);

		dy[d[i]]=i;

		sz[i]=1;

	}

	while(dy.size()>1){

		pair<long long,int> X=*dy.rbegin();

		int x=X.second;

		long long val=X.first;

		dy.erase(val);

		long long tov=val-n+2*sz[x];

		if(!dy.count(tov)){

			puts("-1");

			return 0;

		}else{

			int ff=dy[tov];

			son[ff].push_back(x);

			son[x].push_back(ff);

			sz[ff]+=sz[x];

			ans.emplace_back(ff,x);

		}

	}

	dep[0]=-1;

	dfs(dy.begin()->second,0);

	if(sum!=dy.begin()->first){

		puts("-1");

		return 0;

	}

	for(int i=0;i<n-1;i++){

		printf("%d %d\n",ans[i].first,ans[i].second);

	}

	return 0;

}

// Faster C++ solution for the same problem (measured speedup: 3.5874782795964086x):
#include <iostream>

#include <cstdio>

#include <algorithm>

#define int long long

#define ll long long

using namespace std;

inline int read()

{

	int x = 0, f = 1; char ch = getchar();

	while(ch < '0' || ch > '9') {if(ch == '-') f = -1; ch = getchar();}

	while(ch >= '0' && ch <= '9') {x = (x << 3) + (x << 1) + (ch ^ 48); ch = getchar();}

	return x * f;

}

const int N = 1e5 + 1000;

int n,num; ll dis,siz[N];

int u[N],to[N];

struct node

{

	ll v; int id;

	int friend operator <(node a,node b){return a.v < b.v;}

}p[N];

signed main()

{

	n = read();

	for(int i = 1;i <= n;i ++) {p[i] = node{read(),i}; siz[i] = 1;}

	sort(p + 1,p + 1 + n);

	for(int i = n;i > 1;i --)

	{

		ll Dis = p[i].v - n + (siz[i] << 1);

		int t = lower_bound(p + 1,p + 1 + n,node{Dis,0}) - p;

		if(p[t].v != Dis) {puts("-1"); return 0;}

		num ++; u[num] = p[i].id; to[num] = p[t].id;

		siz[t] += siz[i]; dis += siz[i]; 

	}

	if(dis != p[1].v) {puts("-1"); return 0;}

	else for(int i = 1;i < n;i ++) cout << u[i] << " " << to[i] << "\n";

}