#include <math.h>
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
const int N=1000000;
int a[N];
int n;
int g[N];
int mmax=-1;
int cnt,x;
int main(int argc, char** argv) {
while (cin >> x) a[++n] = x;
g[0] = 2e9;
for (int i = 1; i <= n; i++) {
if (a[i] <= g[cnt]) g[++cnt] = a[i];
else {
int l = 0, r = cnt+1;
while (l+1 < r) {
int mid = l + r >> 1;
if (g[mid] < a[i]) r = mid;
else l = mid ;
}
g[l] = a[i];
}
}
cout << cnt << endl;
return 0;
}