소 십종경기

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

농부 존이 기르는 소 NN마리(1N201 \le N \le 20)가 십종경기를 준비한다. 소에는 늘 그렇듯 11번부터 NN번까지 번호가 붙어 있고, 종목도 NN개다. 종목이 열 개가 아니니 NN종 경기라고 부르는 편이 정확하겠지만, 이름은 그대로 두기로 한다.

ii번 소가 jj번 종목에 나가면 실력 점수 sijs_{ij}(1sij10001 \le s_{ij} \le 1000)를 얻는다. 소 한 마리는 정확히 한 종목에만 나가고, 모든 종목에 소가 한 마리씩 배정된다.

팀의 기본 점수는 각 소가 자기가 나간 종목에서 얻은 실력 점수의 합이다. 심판은 경기가 인상적이면 여기에 보너스를 얹어 준다. 보너스는 BB개(1B201 \le B \le 20)이고, ii번 보너스는 세 정수 KiK_i, PiP_i, AiA_i(1KiN1 \le K_i \le N, 1Pi400001 \le P_i \le 40000, 1Ai10001 \le A_i \le 1000)로 정해진다. 앞의 KiK_i개 종목에서 팀이 PiP_i점 이상을 얻으면 AiA_i점을 더 받는다.

앞의 KiK_i개 종목에서 얻은 점수에는 그 종목들만으로 이미 받은 보너스도 들어간다. 즉 KjKiK_j \le K_ijj번 보너스를 이미 받았다면 AjA_j도 함께 센다. 보너스는 KK가 작은 것부터 큰 것 순서로 판정하고, KK가 같은 보너스가 여러 개면 조건을 만족하는 보너스가 더 없을 때까지 지급을 반복한다. 한 보너스를 두 번 받지는 못한다.

예를 들어 소가 N=3N = 3마리이고 실력 점수가 다음과 같다고 하자.

종목 1종목 2종목 3
1517
2224
3421

1번 소가 3번 종목에 나가면 팀은 7점을 얻는다. 여기에 보너스가 하나 있어서 앞의 두 종목에서 7점 이상을 얻으면 6점을 더 준다고 하자. 그러면 1번 소를 1번 종목, 2번 소를 3번 종목, 3번 소를 2번 종목에 내보내는 배정이 가장 좋다. 앞의 두 종목에서 1번 소가 5점, 3번 소가 2점을 얻어 7점이 되므로 보너스 조건을 만족한다. 총점은 5+2+4+6=175 + 2 + 4 + 6 = 17점이다.

총점이 가장 커지도록 소를 종목에 배정하자.

입력

첫째 줄에 소와 종목의 수 NN, 보너스의 수 BB가 공백을 사이에 두고 주어진다.

다음 BB개 줄에는 보너스 정보가 한 줄에 하나씩 주어진다. 그중 ii번째 줄에는 KiK_i, PiP_i, AiA_i가 공백을 사이에 두고 주어진다.

다음 NN개 줄에는 소의 실력 점수가 주어진다. 그중 jj번째 줄에는 jj번 소가 각 종목에서 얻는 점수 sj1,sj2,,sjNs_{j1}, s_{j2}, \dots, s_{jN}이 공백을 사이에 두고 주어진다.

출력

첫째 줄에 보너스를 포함해 소들이 얻을 수 있는 최대 총점을 출력한다.