#pragma once #include #define M_PI 3.14159265358979323846 // pi using namespace std; typedef long long ll; typedef unsigned long long ull; typedef vector VI; typedef pair P; typedef tuple t3; typedef tuple t4; #define rep(a,n) for(int a = 0;a < n;a++) #define repi(a,b,n) for(int a = b;a < n;a++) const ll mod = 1000000007; bool Compare(t4& left, t4& right) { ll a, b, d, e, f,h; char c, g; tie(a, b, c, d) = left; tie(e, f, g, h) = right; if (a == e) { return d < h; } return a < e; } int main(void) { ll n, m; cin >> n >> m; vector ev; vector s(n, 0); rep(i, m) { ll l, r; char t; cin >> l >> r >> t; l--; r--; ev.emplace_back(l, r, t, i); } sort(ev.begin(), ev.end(), Compare); ll prev = -1; rep(i, m) { ll l, r, j; char t; tie(l, r, t, j) = ev[i]; for (int k = max(prev + 1, l); k <= r; k++) { s[k] = t; } prev = max(prev, r); } map memo; rep(i, n) { char c = s[i]; memo[c]++; } cout << memo['Y'] << " " << memo['K'] << " " << memo['C'] << endl; return 0; }