#include<iostream.h>
#include<vector>
#include<stdlib.h>
#include<algorithm>

void main()
{
  long n;
  cin>>n;
  int i,j,i1,temp;
  int *id = new int[n];
  int *val = new int[n];
  vector<int> *v = new vector<int>[n];
  for(i=0;i<n;i++)
    {
      cin>>val[i];
      id[i] = i;
    }
   for(i=0;i<n;i++)
    for(j=i+1;j<n;j++)
      if(val[i]<val[j])
	{
	  temp = val[i];
	  val[i] = val[j];
	  val[j] = temp;
	  temp = id[i];
	  id[i] = id[j];
	  id[j] = temp;
	}
   i=0;
  while(i<n)
    { 
      for(j=i+1;j<=i+val[i];j++)
	{
	  if(val[j]>0)
	    {
	      v[id[i]].push_back(id[j]);
	      v[id[j]].push_back(id[i]);
	      val[j]--;
	    }
	  else
	    {
	      cout<<"-1";
	      return(1);
	    }
	}
      val[i] = -1;
      for(i1=i+1;i1<n;i1++)
	for(j=i1+1;j<n;j++)
	  if(val[i1]<val[j])
	    {
	      temp = val[i1];
	      val[i1] = val[j];
	      val[j] = temp;
	      temp = id[i1];
	      id[i1] = id[j];
	      id[j] = temp;
	    }
      i++;
    }
  cout<<"1\n";
  for(i=0;i<n;i++)
    {
      sort(v[i].begin(),v[i].end());
    }
  for(i=0;i<n;i++)
    {
      for(j=0;j<v[i].size();j++)
	cout<<v[i][j]<<" ";
      cout<<"-1\n";
    }
  
}






