그리디
# https://www.acmicpc.net/problem/1946
import sys
import heapq
t = int(sys.stdin.readline().rstrip())
for i in range(t) :
hq = []
n = int(sys.stdin.readline().rstrip())
for j in range(n) :
s,m = map(int ,sys.stdin.readline().rstrip().split()) # 서류 순위 / 면접 순위
heapq.heappush(hq,(s,m))
# 서류 순위가 가장 높은 것부터
min_s, min_m = heapq.heappop(hq)
before_rank = min_m
answer = 1 # 서류 1위인 사람 먼저 count
while hq :
now_s, now_m_rank = heapq.heappop(hq)
if now_m_rank < before_rank :
answer+=1
before_rank = now_m_rank
print(answer)
# https://www.acmicpc.net/problem/1946
import sys
import heapq
t = int(sys.stdin.readline().rstrip())
for i in range(t) :
hq = []
n = int(sys.stdin.readline().rstrip())
for j in range(n) :
s,m = map(int ,sys.stdin.readline().rstrip().split()) # 서류 성적 / 면접 순위
heapq.heappush(hq,(s,m))
# 서류 점수가 가장 큰 것부터
min_s, min_m = heapq.heappop(hq)
before_rank = min_m
answer = 1 # 서류 1위인 사람 먼저 count
for _ in range(n-1) :
now_s, now_m = heapq.heappop(hq)
if now_m < before_rank :
answer+=1
before_rank = now_m
# 매번 갱신하는 이 부분에서 오답 , 팀에 합류되는 멤버들이 생길 때만 갱신해야 합니다.
print(answer)