#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
int List[n];
for(int i = 0; i < n; i++)
{
cin>>List[i];
}
int LIS[n];
for(int i = 0; i < n; i++)
{
LIS[i] = 1;
}
// for(int i = 0; i < n; i++)
// {
// cout<<LIS[i]<<" ";
// }
// cout<<endl;
for(int i = 1; i < n; i++)
{
for(int j = 0; j < i; j++)
{
if(List[i] > List[j])
{
LIS[i] = max(LIS[i], 1+ LIS[j]);
}
else continue;
}
}
for(int i = 0; i < n; i++)
{
cout<<LIS[i]<<" ";
}
cout<<endl;
int mx = INT_MIN;
for(int i = 0; i < n; i++)
{
if(mx < LIS[i])mx = LIS[i];
}
cout<<mx<<endl;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkKewogICAgaW50IG47CiAgICBjaW4+Pm47CiAgICBpbnQgTGlzdFtuXTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgY2luPj5MaXN0W2ldOwogICAgfQogICAgaW50IExJU1tuXTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgTElTW2ldID0gMTsKICAgIH0KLy8gICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykKLy8gICAgewovLyAgICAgICAgY291dDw8TElTW2ldPDwiICI7Ci8vICAgIH0KLy8gICAgY291dDw8ZW5kbDsKICAgIGZvcihpbnQgaSA9IDE7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgZm9yKGludCBqID0gMDsgaiA8IGk7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKExpc3RbaV0gPiBMaXN0W2pdKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBMSVNbaV0gPSBtYXgoTElTW2ldLCAxKyBMSVNbal0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgY29udGludWU7CiAgICAgICAgfQogICAgfQoKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgY291dDw8TElTW2ldPDwiICI7CiAgICB9CiAgICBjb3V0PDxlbmRsOwogICAgaW50IG14ID0gSU5UX01JTjsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgaWYobXggPCBMSVNbaV0pbXggPSBMSVNbaV07CiAgICB9CiAgICBjb3V0PDxteDw8ZW5kbDsKCgoKCgoKCgoKCgp9Cg==