greedy algorithm 너무 어렵다.
기본적으로 끝의 자리를 기준으로 정렬해준 후,
그 리스트를 이용하여 조건에 해당하는 지 확인해준다.
import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
n, m = list(map(int, list(input().strip().split())))
ls = [list(map(int, list(input().strip().split()))) for _ in range(m)]
visited = [False] + [False for _ in range(n)]
ls.sort(key=lambda x: (x[1], x[0]))
book = 0
for l in ls:
for i in range(l[0], l[1] + 1):
if not visited[i]:
visited[i] = True
book += 1
break
print(book)