#include using namespace std; #define rep(i,n) for(int i = 0; i < (n);i++) #define sz(x) int(x.size()) typedef long long ll; typedef pair P; constexpr int INF = 1e9; int main(){ int n, m; cin >> n >> m; priority_queue, vector>, greater<>> que; vector>> ykc(n); map mp; mp['Y'] = 0; mp['K'] = 1; mp['C'] = 2; rep(i,m) { int l, r; char c; cin >> l >> r >> c; int num = mp[c]; l--; r--; ykc[l].emplace_back(make_pair(i,make_pair(r,num))); } vector check(n,0), res(3,0); for (int i = 0; i < n; i++) { for (auto e : ykc[i]) que.push(e); while (!que.empty() && !check[i]) { auto p = que.top(); if (p.second.first < i) que.pop(); else { check[i] = 1; res[p.second.second]++; } } } for (auto ans : res) cout << ans << " "; cout << endl; return 0; }