공항

재배치 비행과 공항 검사 시간을 고려해 모든 정기 항공편을 운항하는 데 필요한 최소 비행기 대수를 구합니다.

보통7그래프최단 경로아직 제출이 없습니다시간 제한3초메모리 제한256 MB

문제

어떤 항공사가 1번부터 n번까지 번호가 붙은 공항 n개에서 항공편을 운항한다. 공항 i에서 공항 j로 가는 비행 시간은 tijt_{ij}이고, 바람과 지형 때문에 tijt_{ij}tjit_{ji}가 다를 수 있다.

비행기는 공항 i에 착륙하면 pip_i만큼 점검을 받아야 다시 이륙할 수 있다. 점검 시간은 착륙한 공항에만 달려 있고 그 비행기가 어디에서 왔는지와는 무관하다. 기체를 옮기려고 항공사가 임의로 추가한 비행으로 착륙했을 때도 점검을 똑같이 받는다.

항공사는 정규편 m개를 모두 운항해야 한다. kk번째 정규편은 정확히 시각 tkt_k에 공항 sks_k를 출발해 공항 fkf_k로 곧장 간다. 기체를 옮기는 비행은 정규편 외에 얼마든지 추가할 수 있고, 한 기체가 그런 비행을 여러 번 연달아 해도 된다.

정규편 aa를 운항한 기체가 이어서 정규편 bb를 운항하려면 시각 tbt_b까지 공항 sbs_b에 돌아와 점검을 마쳐야 한다. 출발 시각이 같은 정규편 두 개를 한 기체가 모두 운항할 수는 없다.

정확히 적으면 이렇다. 정규편 aa를 마친 기체가 다시 이륙할 수 있게 되는 시각은 Aa=ta+tsafa+pfaA_a = t_a + t_{s_a f_a} + p_{f_a}이다. 공항 xx에서 공항 yy로 기체를 옮기는 데 드는 최소 시간을 dxyd_{xy}라 하자. dxyd_{xy}는 거쳐 가는 경로의 비행 시간과 착륙하는 공항마다의 점검 시간을 모두 더한 값 중 가장 작은 값이고, dxx=0d_{xx} = 0이다. 한 기체가 aa 다음에 bb를 운항할 수 있는 조건은 ta<tbt_a < t_b이면서 Aa+dfasbtbA_a + d_{f_a s_b} \le t_b인 것이다.

정규편 m개를 모두 운항하려면 비행기가 최소 몇 대 필요한지 구하라.

입력

첫째 줄에 정수 nnmm이 공백으로 구분되어 주어진다. (1n,m5001 \le n, m \le 500)

둘째 줄에 정수 p1,,pnp_1, \dots, p_n이 공백으로 구분되어 주어진다. (0pi1060 \le p_i \le 10^6)

다음 nn개 줄에는 각각 정수 nn개가 공백으로 구분되어 주어진다. ii번째 줄의 jj번째 정수가 tijt_{ij}이다. (0tij1060 \le t_{ij} \le 10^6) 모든 ii에 대해 tii=0t_{ii} = 0이지만, iji \ne j일 때 tijt_{ij}tjit_{ji}는 다를 수 있다.

다음 mm개 줄에는 각각 정수 세 개 sis_i, fif_i, tit_i가 공백으로 구분되어 주어진다. (1si,fin1 \le s_i, f_i \le n, sifis_i \ne f_i, 1ti1061 \le t_i \le 10^6) 시각 tit_i에 공항 sis_i를 출발해 공항 fif_i로 곧장 가는 정규편을 항공사가 운항해야 한다는 뜻이다.

출력

정규편 mm개를 모두 운항하는 데 필요한 비행기의 최소 대수를 한 줄에 출력한다.