Competitions

# Airports

Time limit 1 second
Memory limit 128 MiB

An airline company offers flights out of n airports, conveniently labeled from 1 to n. The flighttime t[ij] from airport i to airport j is known for every i and j. It may be the case that t[ij]t[ji], due to things like wind or geography. Upon landing at a given airport, a plane must be inspected before it can be own again. This inspection time p[i] is dependent only on the airport at which the inspection is taking place and not where the previous flight may have originated.

Given a set of m flights that the airline company must provide, determine the minimum number of planes that the company needs to purchase. The airline may add unscheduled flights to move the airplanes around if that would reduce the total number of planes needed.

## Input data

The first line contains two space-separated integers n and m (1n, m500). The next line contains n space-separated integers p[1], ..., p[n] (0p[i]10^6).

Each of the next n lines contains n space-separated integers. The j-th integer in line i + 2 is t[ij] (0t[ij]10^6). It is guaranteed that t[ii] = 0 for all i. However, it may be the case that t[ij]t[ji] when ij.

Each of the next m lines contains three space-separated integers s[i], f[i] and t[i] (1s[i], f[i]n, s[i]f[i], 1t[i]10^6), indicating that the airline company must provide a flight that flies out from airport s[i] at exactly time t[i], heading directly to airport f[i].

## Output data

Print, on a single line, a single integer indicating the minimum number of planes the airline company must purchase in order to provide the m requested flights.

## Examples

Input example #1
2 2
1 1
0 1
1 0
1 2 1
2 1 1

Output example #1
2

Input example #2
2 2
1 1
0 1
1 0
1 2 1
2 1 3

Output example #2
1

Input example #3
5 5
72 54 71 94 23
0 443 912 226 714
18 0 776 347 810
707 60 0 48 923
933 373 881 0 329
39 511 151 364 0
4 2 174
2 1 583
4 3 151
1 4 841
4 3 993

Output example #3
3

Source 2015 ACM North America - Pacific Northwest, Division 1, Problem A