## https://yukicoder.me/problems/no/945 import heapq def main(): N, M = map(int, input().split()) lrt = [] for _ in range(M): l, r,t = input().split() lrt.append((int(l) - 1, int(r) - 1, t)) l_map = [[] for _ in range(N)] for index in range(M): l, r, t = lrt[index] l_map[l].append((index, r, t)) answers = ["" for _ in range(N)] queue = [] for l in range(N): for index, r, t in l_map[l]: heapq.heappush(queue, (index, r, t)) while len(queue) > 0 and queue[0][1] < l: heapq.heappop(queue) if len(queue) > 0: _, _, t = queue[0] answers[l] = t answers_map = {"Y": 0, "M": 0, "C": 0} for l in range(N): k = answers[l] if k in answers_map: answers_map[k] += 1 print(answers_map["Y"], answers_map["M"], answers_map["C"]) if __name__ == "__main__": main()