#include <bits/stdc++.h>
using namespace std;
ifstream fin("cutii.in");
ofstream fout("cutii.out");
int n, dp[3503];
struct Iris {
int x, y, z;
}v[3503];
inline int cmp(Iris a, Iris b) { return a.x > b.x; }
int main()
{
int tt; fin >> n >> tt;
while(tt--) {
for(int i=1; i<=n; i++) {
dp[i] = 0;
fin >> v[i].x >> v[i].y >> v[i].z;
}
sort(v+1, v+n+1, cmp);
int rez = 0;
for(int i=1; i<=n; i++) {
int maxim = 0;
for(int j=i-1; j>=1; j--)
if(v[i].x < v[j].x && v[i].y < v[j].y && v[i].z < v[j].z) maxim = max(maxim, dp[j]);
dp[i] = maxim + 1;
rez = max(rez, dp[i]);
}
fout << rez << '\n';
}
return 0;
}