#include<iostream>
using namespace std;
int a[114514],b[114514],x,p,k,cnt;
void fun(int n){
for(int i = 1;i <= cnt/2;++i) swap(b[i],b[cnt-i+1]);
cout << endl;
int ma = 0,dp[114514] = {0};
for(int i = 1;i <= n;++i){
dp[i] = 1;
for(int j = 1;j < i;++j)
if(b[j] <= b[i]) dp[i] = max(dp[j]+1,dp[i]);
ma = max(dp[i],ma);
}
cout << ma << endl;
}
int main(){
while(cin >> x){
p = -1;b[++cnt] = x;
for(int j = 1;j <= k;j++){
if(a[j] >= x){
p = j;
break;
}
}
if(p == -1){
k++;
a[k] = x;
}else a[p] = x;
}
fun(cnt);
cout << k;
return 0;
}