// Original C++ solution (slower):
/*!|||||||!!!!!!!!!!!!!!!!!!|%%$&&&&&&&&&&&&&|'`......```':'':!;.  ......````':!;..

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#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;

}

// Optimized solution to the same problem (faster):
#include <cstdio>

#include <algorithm>

#include <vector>

#define file(x) freopen(#x".in", "r", stdin), freopen(#x".out", "w", stdout)



const int N(1e5 + 10);

struct edge { int x, y; } e[N];

struct node { long long d; int id; } a[N];

inline int operator < (const node &l, const node &r)

	{ return l.d < r.d; }

int n, size[N], cnt;



int main()

{

	scanf("%d", &n);

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

		scanf("%lld", &a[i].d), a[i].id = i, size[i] = 1;

	std::sort(a + 1, a + n + 1);

	long long dis = 0, d;

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

	{

		d = a[i].d - n + (size[i] << 1), p = std::lower_bound(a + 1, a + n + 1, (node) {d, 0}) - a;

		if (a[p].d != d) return puts("-1"), 0;

		e[++cnt] = (edge) {a[i].id, a[p].id}, size[p] += size[i], dis += size[i];

	}

	if (dis != a[1].d) puts("-1");

	else for (int i = 1; i < n; i++) printf("%d %d\n", e[i].x, e[i].y);

	return 0;

}


// Fastest known solution for this problem: