바이트버그에서 자선 축제가 열리고 있고, 당신은 모금 담당자 중 한 명입니다. 당신은 장애물 달리기 경주를 비롯한 여러 행사를 놓쳤습니다. 퍼즐 애호가인 바이트아사르는 자신이 낸 수수께끼를 풀면 큰 금액을 기부하겠다고 약속합니다.
당신은 경주 결과를 알지 못하지만, 바이트아사르가 일부 정보를 알려 주며 이렇게 묻습니다. 그가 알려 준 모든 조건에 어긋나지 않으면서 선수들이 기록할 수 있는 서로 다른 완주 시간의 최대 개수는 얼마일까요? 같은 순간에 결승선을 통과한 선수들은 같은 시간을 가집니다.
모든 선수의 완주 시간은 정수 초입니다. 바이트아사르는 선수들의 시간 사이에 성립하는 두 종류의 관계를 알려 줍니다.
선수들이 기록할 수 있는 서로 다른 시간의 최대 개수를 구하는 프로그램을 작성하세요.
첫째 줄에 세 정수 n, m1, m2가 주어집니다 (2≤n≤600, 1≤m1+m2≤100000). 각각 선수의 수, 첫 번째 종류의 관계 수, 두 번째 종류의 관계 수를 뜻합니다. 선수는 1번부터 n번까지 번호가 매겨집니다.
다음 m1개의 줄에는 각각 두 정수 ai와 bi가 주어집니다 (ai=bi). 선수 ai의 시간이 선수 bi의 시간보다 정확히 1초 작았음을 뜻합니다.
그다음 m2개의 줄에는 각각 두 정수 ci와 di가 주어집니다 (ci=di). 선수 ci의 시간이 선수 di의 시간보다 크지 않았음을 뜻합니다.
바이트아사르가 알려 준 모든 관계와 어긋나지 않는, 서로 다른 완주 시간의 최대 개수를 정수 하나로 출력합니다.
모든 관계를 만족하는 시간 배정이 존재하지 않으면, 대신 NIE라는 단어 하나만 출력합니다.
첫 번째 예제에서는 조건에 맞는 결과가 두 가지 있습니다.
첫 번째 결과는 서로 다른 시간이 세 가지로 두 번째보다 많으므로, 정답은 3입니다.