#include using namespace std; struct node{ int x,y,z,ans; }a[1005],f[1005]; int n; bool cmp(node a,node b){ if (a.x==b.x&&a.y==b.y) return a.z>n; for (int i=1;i<=n;i++){ scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z); if (a[i].xf[j].x&&a[i].y>f[j].y&&a[i].z>f[j].z){ if (f[j].ans+1>f[i].ans){ f[i]={a[i].x,a[i].y,a[i].z,f[j].ans+1}; } } } int ans=0; for (int i=1;i<=n;i++) ans=max(ans,f[i].ans); cout<