#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
using namespace std;
struct node
{
int value;
mutable int position;
mutable bool left, right;
bool operator < (const node& a) const
{
return value < a.value;
}
};
int main()
{
int n;
cin >> n;
vector < node > a(n);
set < node > s;
for (auto &i: a)
{
cin >> i.value;
i.left=i.right=0;
}
a[0].position=1;
s.insert(a[0]);
for (int i=1; i<n; i++)
{
auto it=s.upper_bound(a[i]);
auto it2=it; --it2;
if (it==s.begin())
{
a[i].position=2*it->position;
s.insert(a[i]);
it->left=1;
}
else if (it==s.end())
{
a[i].position=2*(--it)->position+1;
s.insert(a[i]);
it->right=1;
}
else
{
if (it2->right==0)
{
a[i].position=2*it2->position+1;
s.insert(a[i]);
it2->right=1;
}
else
{
a[i].position=2*it->position;
s.insert(a[i]);
it->left=1;
}
}
}
for (auto i: a) cout << i.position << ' ';
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IG5vZGUKewogICAgaW50IHZhbHVlOwogICAgbXV0YWJsZSBpbnQgcG9zaXRpb247CiAgICBtdXRhYmxlIGJvb2wgbGVmdCwgcmlnaHQ7CiAgICBib29sIG9wZXJhdG9yIDwgKGNvbnN0IG5vZGUmIGEpIGNvbnN0CiAgICB7CiAgICAgICAgcmV0dXJuIHZhbHVlIDwgYS52YWx1ZTsKICAgIH0KfTsKCmludCBtYWluKCkKewogICAgaW50IG47CiAgICBjaW4gPj4gbjsKCiAgICB2ZWN0b3IgPCBub2RlID4gYShuKTsKICAgIHNldCA8IG5vZGUgPiBzOwoKICAgIGZvciAoYXV0byAmaTogYSkKICAgIHsKICAgICAgICBjaW4gPj4gaS52YWx1ZTsKICAgICAgICBpLmxlZnQ9aS5yaWdodD0wOwogICAgfQoKICAgIGFbMF0ucG9zaXRpb249MTsKICAgIHMuaW5zZXJ0KGFbMF0pOwoKICAgIGZvciAoaW50IGk9MTsgaTxuOyBpKyspCiAgICB7CiAgICAgICAgYXV0byBpdD1zLnVwcGVyX2JvdW5kKGFbaV0pOwogICAgICAgIGF1dG8gaXQyPWl0OyAtLWl0MjsKICAgICAgICBpZiAoaXQ9PXMuYmVnaW4oKSkKICAgICAgICB7CiAgICAgICAgICAgIGFbaV0ucG9zaXRpb249MippdC0+cG9zaXRpb247CiAgICAgICAgICAgIHMuaW5zZXJ0KGFbaV0pOwogICAgICAgICAgICBpdC0+bGVmdD0xOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChpdD09cy5lbmQoKSkKICAgICAgICB7CiAgICAgICAgICAgIGFbaV0ucG9zaXRpb249MiooLS1pdCktPnBvc2l0aW9uKzE7CiAgICAgICAgICAgIHMuaW5zZXJ0KGFbaV0pOwogICAgICAgICAgICBpdC0+cmlnaHQ9MTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgaWYgKGl0Mi0+cmlnaHQ9PTApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGFbaV0ucG9zaXRpb249MippdDItPnBvc2l0aW9uKzE7CiAgICAgICAgICAgICAgICBzLmluc2VydChhW2ldKTsKICAgICAgICAgICAgICAgIGl0Mi0+cmlnaHQ9MTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGFbaV0ucG9zaXRpb249MippdC0+cG9zaXRpb247CiAgICAgICAgICAgICAgICBzLmluc2VydChhW2ldKTsKICAgICAgICAgICAgICAgIGl0LT5sZWZ0PTE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZm9yIChhdXRvIGk6IGEpIGNvdXQgPDwgaS5wb3NpdGlvbiA8PCAnICc7Cn0=