아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

우체부

시간 제한1초메모리 제한128 MB

요약
방향 그래프에서 1번 정점을 시작과 끝으로 하는 오일러 회로가 주어진 각 수열을 연속된 구간으로 포함할 수 있는지 판정한다.
난이도

어려움10점 중 8점

유형
그래프, DFS, 구현
정답자
아직 제출이 없습니다

문제

매일 아침 우체부 바이트아사르는 자신이 맡은 구역의 모든 거리를 지나며 우편물을 배달해야 한다. 모든 도로는 일방통행이며 교차로들을 연결한다. 교차로에는 11번부터 nn번까지 번호가 매겨져 있고, 어떤 두 교차로 사이에는 서로 반대 방향의 도로가 각각 하나씩, 최대 두 개까지 있을 수 있다.

바이트아사르는 매번 11번 교차로에 있는 우체국에서 경로를 시작하고 그곳에서 끝낸다. 예전에는 경로를 스스로 정했지만, 이제는 규정에 따라 선택이 제한된다. 그는 여러 개의 경로 조각, 즉 교차로 번호들의 수열 여러 개를 배정받는다. 바이트아사르가 선택하는 경로는 다음 조건을 모두 만족해야 한다.

  • 모든 거리를 정확히 한 번씩 지난다.
  • 배정된 각 수열을, 연속으로 방문하는 교차로들의 한 구간으로 포함한다. 즉, 그 수열이 경로의 연속한 원소 vi,vi+1,…v_i, v_{i+1}, \dots 로 나타난다.
  • 11번 교차로에서 시작하여 11번 교차로에서 끝난다.

이 모든 조건을 만족하는 경로가 존재하지 않을 수도 있다. 예를 들어 배정된 수열이 존재하지 않는 도로를 지나도록 요구할 수 있다. 이러한 경로가 존재하는지 여부만 판정하여라.

입력

첫 번째 줄에 두 정수 nn과 mm이 주어진다 (2≤n≤500002 \le n \le 50000, 1≤m≤2000001 \le m \le 200000). 각각 교차로의 수와 도로의 수이다.

이어지는 mm개의 줄에는 도로가 하나씩 주어진다. 각 줄에는 두 정수 aa와 bb가 있으며 (1≤a,b≤n1 \le a, b \le n, a≠ba \ne b), aa번 교차로에서 bb번 교차로로 향하는 일방통행 도로를 뜻한다. 각 순서쌍 (a,b)(a, b)는 최대 한 번만 등장한다.

그 다음 줄에는 배정된 수열의 개수를 나타내는 정수 tt가 주어진다 (0≤t≤100000 \le t \le 10000). 이어지는 tt개의 줄에는 수열이 하나씩 주어지는데, 각 줄은 정수 kk (2≤k≤2000002 \le k \le 200000)와 그 뒤에 오는 kk개의 교차로 번호로 이루어진다. 모든 수열의 길이의 합은 10000001000000을 넘지 않는다.

출력

한 줄에 다음을 출력한다.

  • 조건을 모두 만족하는 경로가 존재하면 TAK,
  • 그러한 경로가 존재하지 않으면 NIE.

(TAK과 NIE는 각각 폴란드어로 "예"와 "아니오"를 뜻한다.)

힌트

예제3

  1. 예제 1

    입력
    6 10
    1 5
    1 3
    4 1
    6 4
    3 6
    3 4
    4 3
    5 6
    6 2
    2 1
    4
    3 1 5 6
    3 3 4 3
    4 4 3 6 4
    3 5 6 2
    
    예상 출력
    TAK
    
  2. 예제 2

    입력
    2 2
    1 2
    2 1
    0
    
    예상 출력
    TAK
    
  3. 예제 3

    입력
    3 2
    1 2
    2 3
    0
    
    예상 출력
    NIE