화성의 왕

수도에서 지역 중심까지 길이가 L인 경로의 색 기록을 이진수 순서로 정렬하고 순위와 이웃 기록 질의에 답합니다.

보통7동적 계획법이분 탐색그래프아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

화성에 작은 왕국이 있다. 왕국에는 도시가 여러 개 있고 그중 일부는 지방 거점이다. 수도는 지방 거점일 수도 있고 아닐 수도 있다. 도시는 일방통행 도로로 이어져 있으며 도로는 빨간색 아니면 파란색이다. 한 도시에서 나가는 도로는 색깔마다 최대 한 개다.

왕은 해마다 여행을 떠난다. 여행은 수도에서 출발해 도로 LL개를 지나고 반드시 지방 거점에서 끝난다. 지나간 도로의 색을 순서대로 연대기에 적는데, 빨간 도로는 0, 파란 도로는 1로 적는다. 그래서 한 해의 기록은 길이 LL인 이진 문자열이다.

아레스 왕은 규칙을 하나 지켰다. 해마다 새 경로를 고르되 그 기록이 전년도 기록보다 커야 한다. 기록은 앞자리 0을 허용하는 이진수로 보고 크기를 비교한다. 즉위 첫해에는 아무 경로나 골라도 된다. 더 고를 경로가 없으면 왕은 재위를 마쳐야 한다. 아레스는 재위 기간이 가장 길어지도록 경로를 골랐다.

바샤는 연대기의 일부만 가지고 있어서 다음 질문에 스스로 답하지 못한다.

  • 재위 KK년째에 왕이 고른 경로는 무엇인가? 재위 연도는 1부터 센다.
  • 기록이 SS인 경로를 왕이 고른 해는 재위 몇 년째인가?
  • 기록이 SS인 경로 바로 다음에 왕이 고른 경로는 무엇인가?
  • 기록이 SS인 경로 바로 앞에 왕이 고른 경로는 무엇인가?

바샤 대신 이 질문에 답하는 프로그램을 작성하시오.

입력

첫째 줄에 정수 다섯 개 NN, MM, FF, LL, QQ가 주어진다. 차례대로 도시 수, 도로 수, 지방 거점 수, 한 해 여행에서 지나는 도로 수, 질문 수다. (1N501 \le N \le 50, 1M1001 \le M \le 100, 1FN1 \le F \le N, 1L601 \le L \le 60, 1Q100001 \le Q \le 10000)

도시 번호는 1번부터 NN번까지이고 수도는 1번이다.

다음 MM개 줄에는 도로가 하나씩 주어진다. 각 줄에 정수 세 개 AiA_i, BiB_i, CiC_i가 있고, ii번 도로가 도시 AiA_i에서 도시 BiB_i로 가는 일방통행 도로이며 색은 CiC_i라는 뜻이다. 빨간색이면 0, 파란색이면 1이다.

다음 줄에는 서로 다른 정수 FF개가 주어진다. 지방 거점인 도시의 번호다.

마지막 QQ개 줄에는 질문이 하나씩 주어진다. 형식은 다음 넷 중 하나다.

  • ? K: 재위 KK년째에 왕이 고른 경로는 무엇인가? (1K5×10181 \le K \le 5 \times 10^{18})
  • ! S: 기록이 SS인 경로를 왕이 고른 해는 재위 몇 년째인가?
  • > S: 기록이 SS인 경로 바로 다음에 왕이 고른 경로는 무엇인가?
  • < S: 기록이 SS인 경로 바로 앞에 왕이 고른 경로는 무엇인가?

SS01로 이루어진 길이 LL인 문자열이고, 왕이 실제로 고른 적이 있는 경로의 기록이다. 모든 질문은 올바르며 답은 항상 존재한다.

출력

질문마다 한 줄씩 모두 QQ개 줄을 출력한다. ! 질문에는 십진수 정수 하나를 출력한다. 나머지 질문에는 답이 되는 경로의 기록, 곧 01로 이루어진 길이 LL인 문자열을 출력한다.