Cod sursa(job #462338)
using namespace std;
#include<iostream>
#include<fstream>
#include<algorithm>
struct nod{ int x,y,z;};
nod v[3505];
int N,T,dp[3505];
bool cmp(nod i,nod j) {return (i.x<j.x);}
ofstream fout("cutii.out");
void cit()
{int i,j,k;
ifstream fin("cutii.in");
fin>>N>>T;
for(k=1;k<=T;k++)
{v[0].x=v[0].y=v[0].z=0;
for(i=1;i<=N;i++) dp[i]=0;
for(i=1;i<=N;i++)
fin>>v[i].x>>v[i].y>>v[i].z;
sort(v+1,v+N+1,cmp);
for(i=1;i<=N;i++)
for(j=1;j<i;j++)
if(v[j].y<v[i].y&&v[j].z<v[i].z)
{if(dp[j]+1>dp[i])
dp[i]=dp[j]+1;
}
int max=0;
for(i=1;i<=N;i++)
if(max<dp[i])
max=dp[i];
fout<<max+1<<"\n";
}
}
int main()
{
cit();
fout.close();
return 0;
}