#include #include using namespace std; #define N 200020 struct Node { int x,y,lt,id ; }point[N]; int n,len,maxlp[N],by[N]; int cmp(Node a,Node b) { if(a.x != b.x) return a.x < b.x ; if(a.y == b.y) return a.lt > b.lt ; return a.y < b.y ; } int find(int len,int _y) { int mid, left = 1, right = len ; while(left <= right) { mid = (left+right) >> 1 ; if(by[mid] >= _y) right = mid-1 ; else left = mid+1 ; } return left ; } int main() { while(scanf("%d",&n) && n) { for(int i=0;i len) by[++len] = point[i].y ; else by[tmp] = min(by[tmp],point[i].y) ; } } printf("%d\n",len); } return 0; }