시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 512 MB246826839.535%

문제

카오스 동아리 사람들은 모두 코딩에 미쳐있기 때문에 주기적으로 약을 처방받는다. 동아리의 회장 명진이는 새해를 맞아 이들 모두를 치료하고자 한다.

그들이 걸린 질병은 총 M종류이며 각 질병은 0 이상, 100 이하의 위험도를 지닌다. 회원들은 걸린 질병에 따라 특정 개수의 빨강, 파랑 알약을 처방받는다.

  • 처방받는 알약의 수와 위험도가 모두 같은 서로 다른 질병이 존재할 수 있다.
  • 하나의 질병에 대해 여러 번 처방받을 수 없다.
  • 처방받는 알약의 수는 종류별 50개 이하이며 2종류를 합해 최소 1개 이상이다.

명진이는 신년계획에 따라 학생들의 위험군을 계산해 치료 순서 리스트를 작성하고자 한다.

  • 위험군은 해당 학생이 지닐 수 있는 질병들의 위험도 합계의 최대치로 정해진다.
  • 리스트는 저위험군 학생부터 나열되며, 위험군이 같을 경우 번호가 앞선 학생이 먼저 나온다.
  • 만약 학생이 지닌 알약이 어떠한 처방으로도 만들 수 없는 경우, 해당 학생은 미친 척하는 정상인으로 위험군이 0이다.

N명의 학생이 처방받은 빨강, 파랑 알약의 수가 주어졌을 때, 명진이를 도와 치료 순서 리스트를 작성해보자.

입력

첫째 줄에 (1 ≤ N ≤ 100,000), (1 ≤ M ≤ 100)이 공백을 두고 주어진다.

둘째 줄부터 M개의 줄에 걸쳐 M개의 질병에 처방할 빨강, 파랑 알약의 수 R, B(0 ≤ R, Bi ≤ 50, RBi ≥ 1)와 위험도 D(0 ≤ Di ≤ 100)가 공백을 두고 주어진다.

M+2번째 줄부터 개의 줄에 걸쳐 명의 학생이 처방받은 빨강, 파랑 알약의 수 R'B'(0 ≤ R', B'i ≤ 50, R'B'i  ≥ 1)가 공백을 두고 주어진다.

출력

N개의 줄에 걸쳐 학생 번호와 위험군을 빈칸을 두고 리스트 순서대로 출력한다.

예제 입력 1

2 3
1 1 2
2 2 4
3 3 5
3 3
5 5

예제 출력 1

1 6
2 9

1번 학생은 3개의 빨간색 알약과 3개의 파란색 알약을 처방받았다. 해당 알약을 만들 수 있는 경우는

  1. 1번 질병 (빨간색 1개, 파란색 1개) + 2번 질병 (빨간색 2개, 파란색 2개)
  2. 3번 질병 (빨간색 3개, 파란색 3개)

2가지의 경우가 존재한다. 각각의 경우에 위험도는

  1. 1번 질병의 위험도(2) + 2번 질병의 위험도(4) = 6
  2. 3번 질병의 위험도(5) = 5

가 되며, 1번 학생의 위험군은 위험도 합계의 최대치인 6이 된다.

2번 학생은 빨간색 알약 5개, 파란색 알약 5개를 처방받았으며, 2번 질병(빨간색 2개, 파란색 2개) + 3번 질병(빨간색 3개, 파란색 3개)의 경우밖에 존재하지 않는다.

예제 입력 2

3 3
0 1 1
0 1 1
1 0 1
1 1
1 2
6 6

예제 출력 2

3 0
1 2
2 3