#include <bits/stdc++.h>
#define int long long
#define pb push_back
#define fs first
#define sc second
using namespace std;
const int N = 1e5 + 5;
int a[N];
signed main() {
int n, m, k;
cin >> n >> m >> k;
for (int i = 1; i < n; i++) {
int a;
cin >> a;
}
vector<pair<int, int>> vec;
for (int i = 0; i < n; i++) {
int v, d, w;
cin >> v >> d >> w;
vec.pb({v, d});
}
sort(vec.begin(), vec.end());
vector<int> lis;
for (auto [v, d]:vec) {
int x = -d;
auto it = lower_bound(lis.begin(), lis.end(), x);
if (it == lis.end()) lis.pb(x);
else *it = x;
}
cout << lis.size() << endl;
}