#include <cstdio>
#include <cctype>
#include <vector>
#include <algorithm>
namespace QuikIO{
int p1,p2;
const int maxn = 1e6;
char in[maxn];
#define getchar() (p1 == p2 && (p1 = 0,p2 = fread(in,1,maxn,stdin)),p1 == p2 ? EOF : in[p1++])
int read(){
int d = 0;
char ch = getchar();
while (!isdigit(ch)) ch = getchar();
while (isdigit(ch))
d *= 10,d += ch - '0',ch = getchar();
return d;
}
#undef getchar
}using QuikIO::read;
int main(){
int n,tmp;
std::vector <int> v;
n = read();
for (int i = 0;i < n;i++)
tmp = read(),v.insert(std::upper_bound(v.begin(),v.end(),tmp),tmp);
for (int i = 0;i < n;i++) printf("%d ",v[i]);
return 0;
}
upper_bound:(O(log n)),insert:O(n),所以现在读入中的每一步都是O(nlogn),外层循环n次,总复杂度O(n^2logn),接近1.7e11,是1e8的1700倍,竟然不开O2都能过(最长242ms),离谱!!!