#include<stdio.h>
#include<stdlib.h>

void run(void){
  int n;
  scanf("%d",&n);
  int *dp=(int *)calloc(n+1,sizeof(int));
  int i;
  for(i=1;i<=n;i++) dp[i]=1000000000+1;
  dp[0]=-1;
  int len=1;
  while(n--){
    int a;
    scanf("%d",&a);
    int l=0;
    int r=len;
    while(r-l>1){
      int m=(l+r)/2;
      if(dp[m]>=a){
	r=m;
      } else {
	l=m;
      }
    }
    dp[r]=a;
    if(r==len) len++;
  }
  printf("%d\n",len-1);
}

int main(void){
  run();
  return 0;
}

