#include<bits/stdc++.h>
using namespace std;
vector<int> e[200010];
int n,id[200010],idx,cnt[200010],tot,up;
int a[200010],st[200010];
bool flag = true;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
{
cnt[a[i]]++;
e[a[i]].push_back(i);
up = max(up,a[i]);
}
for(int i=0;i<=up;i++)
{
if(cnt[i]==0)
{
flag = false;
break;
}
}
if(!flag){
puts("Impossible");
return 0;
}
int now = 0;
while(idx<n)
{
if(now<0||st[now]>=e[now].size())
{
flag = false;
break;
}
id[++idx]=e[now][st[