만드는 중입니다

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

쿠키 게임

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

요약
요셉은 k개 쿠키의 방향을 골라 그런디 값의 XOR이 0이 되게 해야 하며, 불가능하면 impossible을 출력합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 비트 연산, 정렬
정답자
아직 제출이 없습니다

문제

Joseph와 Carl이 다음 게임을 한다. 쿠키 종류는 nn가지이고, 종류 ii의 쿠키는 변의 길이가 xix_i와 yiy_i인 직사각형이다. 각 종류의 쿠키는 무한히 많다.

게임은 준비 단계와 진행 단계로 나뉜다.

준비 단계에서 Joseph이 게임판을 만든다.

  • 정확히 kk개의 쿠키를 고른다. 각 쿠키의 변은 좌표축과 평행하도록 평면에 놓으며, 두 쿠키가 한 점도 공유하지 않게 한다.
  • 이 단계에서만 Joseph이 놓인 쿠키의 방향을 자유롭게 정할 수 있다. 변 XX를 가로로 두거나, 쿠키를 90도 돌릴 수 있다.
  • 준비가 끝나면 고른 kk개의 쿠키가 각각 스택의 바닥이 된다. 진행 단계는 빈 스택 kk개로 시작한다.

진행 단계에서는 Carl이 먼저 시작하고 두 플레이어가 번갈아 수를 둔다. 한 턴에 플레이어는 쿠키 하나를 골라 어떤 스택의 맨 위에 올린다. 이때 다음 조건을 지켜야 한다.

  • 올리는 쿠키의 변 XX는 반드시 가로로 놓여 있어야 한다.
  • 쿠키 AA를 스택 bb의 맨 위에 올릴 수 있는 것은, AA의 세로 변이 맨 위 쿠키의 세로 변보다 엄격히 짧고, AA의 가로 변이 맨 위 쿠키의 가로 변보다 엄격히 짧을 때다.

올바른 수를 둘 수 없는 플레이어가 진다.

Joseph이 고른 쿠키 종류는 이미 정해져 있다. 두 플레이어가 최선을 다할 때 Joseph이 이기도록 하는 쿠키들의 초기 방향 하나를 찾아라. Joseph이 쿠키를 어떻게 놓아도 이길 수 없다면 그렇다고 답한다.

입력

첫 줄에 정수 nn과 kk가 주어진다 (1≤n,k≤1051 \le n, k \le 10^5). nn은 쿠키 종류의 수이고, kk는 Joseph이 준비 단계에서 사용하는 쿠키의 수다.

이어지는 nn개의 줄에는 정수 xix_i와 yiy_i가 주어진다 (1≤xi,yi≤1051 \le x_i, y_i \le 10^5). 이는 종류 ii의 xx축 방향 변과 yy축 방향 변의 길이다. 서로 다른 두 종류의 xix_i는 같지 않고, yiy_i도 같지 않다.

마지막 줄에는 kk개의 정수 aia_i (1≤ai≤n1 \le a_i \le n)가 주어진다. 이는 Joseph이 사용하는 쿠키의 종류다.

출력

Joseph이 반드시 이길 수 없다면 impossible을 출력한다.

그렇지 않으면 길이가 kk인 이진 문자열을 출력한다. 왼쪽에서 ii번째 문자는 입력에서 ii번째 쿠키에 대응한다. 문자 0은 회전하지 않은 상태로, xix_i가 가로가 된다. 문자 1은 90도 회전한 상태로, yiy_i가 가로가 된다. 답이 여러 개이면 그중 아무거나 출력한다.

예제2

  1. 예제 1

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

    입력
    5 3
    1 1
    3 4
    5 3
    4 5
    7 7
    5 1 2
    
    예상 출력
    impossible