만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Ready for Contest

면접 대비

시간 제한2초메모리 제한1024 MB

요약
문제별로 작성된 풀이의 언어를 보고, C++ 풀이와 Java 풀이가 모두 있는 문제 번호를 오름차순으로 출력합니다.
난이도

쉬움10점 중 2점

유형
배열, 구현
정답자
아직 제출이 없습니다

문제

UCF 프로그래밍 팀 코치들은 UCF Local Programming Contest를 준비할 때마다 각 문제에 대해 C++와 Java로 작성된 유효한 채점용 풀이가 필요합니다. Python 풀이도 작성할 수 있지만 선택 사항입니다. 따라서 코치들은 C++ 풀이와 Java 풀이를 각각 하나 이상 가진 문제를 콘테스트에 준비된 문제로 봅니다.

안타깝게도 코치들은 풀이가 필요한 문제 대신 자신이 좋아하는 문제를 골라 풀이를 씁니다. 게다가 당연히 아직 작성되지 않은 풀이를 확인하지 않고 자신이 가장 잘 아는 언어로 씁니다.

많은 풀이가 작성되었어도 아직 콘테스트에 준비되지 않은 문제가 있을 수 있습니다. 어떤 문제가 출제 가능한지 판별하는 프로그램을 작성하세요.

제안된 문제 수와 작성된 모든 풀이의 목록(어느 문제의 어떤 언어 풀이인지)이 주어집니다. C++ 풀이와 Java 풀이가 모두 작성된 문제, 즉 콘테스트에 준비된 문제를 찾으세요.

입력

첫 줄에 두 정수 nn (1≤n≤1051 \le n \le 10^5)과 mm (2≤m≤3×1052 \le m \le 3 \times 10^5)이 주어집니다. nn은 제안된 문제 수, mm은 작성된 풀이 수입니다. 문제는 1부터 nn까지 번호가 매겨져 있습니다.

이어지는 mm개의 줄에는 작성된 풀이가 한 줄에 하나씩 주어집니다. 각 줄에는 두 정수 pp (1≤p≤n1 \le p \le n)와 LL (1≤L≤31 \le L \le 3)이 있으며, 이는 문제 번호 pp에 언어 LL로 된 풀이가 작성되었음을 뜻합니다. L=1L = 1이면 C++, L=2L = 2이면 Java, L=3L = 3이면 Python입니다.

출력

콘테스트에 준비된 문제를 번호 순서대로 한 줄에 하나씩 출력하세요. 적어도 한 문제는 준비된 상태라고 보장되므로 출력은 항상 존재합니다.

예제3

  1. 예제 1

    입력
    3 11
    1 1
    1 1
    3 1
    3 1
    3 1
    2 2
    1 2
    2 1
    3 1
    2 3
    2 2
    
    예상 출력
    1
    2
    
  2. 예제 2

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

    입력
    3 9
    3 3
    1 3
    2 2
    3 2
    3 1
    2 1
    2 3
    1 2
    1 1
    
    예상 출력
    1
    2
    3