#include<iostream>
#include<algorithm>
using namespace std;
const int inf=0x7fffffff;
int a[100010],dp[100010],f[100010];
int main(){
int x;
int n=0;
while(cin>>x){
n++;
a[n]=x;
}
dp[1]=f[1]=a[1];
int len1=1,len2=1;
for(int i=2;i<=n;i++){
if(dp[len1]>=a[i]){
dp[len1++]=a[i];
}
else{
dp[upper_bound(dp+1,dp+len1+1,a[i],greater<int>())-dp]=a[i];
}
if(f[len2]<a[i]){
f[len2++]=a[i];
}
else{
f[lower_bound(f+1,f+len2+1,a[i])-f]=a[i];
}
}
cout<<len1<<endl<<len2<<endl;
return 0;
}
全部WA