#include<iostream>
using namespace std;
const int N=10000000;
int erfen(int *a,int l,int r,int num){
while(l<r){
int mid=(l+r)/2;
if(num<=a[mid])r=mid;
else l=mid+1;
}
return (a[r]<num?-1:r);
}
int h[N+1],q[N+1],len=1,qlen=0;
int main(){
while(cin>>h[len])len++;len--;
cout<<"-1";
for(int i=1;i<=len;i++){
int p=erfen(q,0,qlen,h[i]);
if(p==-1)q[++qlen]=h[i];
else q[p]=h[i];
}
cout<<"\n"<<qlen;
return 0;
}