`n,m = map(int,input().split())
ro = list(map(int,input().split()))
bill = [list(map(int,input().split())) for _ in range(m)]
arr =[0] *(n+2)
def check(x):
nums = [0]*(n+2)
for i in range(x):# 差分
nums[bill[i][1]] += bill[i][0]
nums[bill[i][2]+1] -= bill[i][0]
for i in range(1,n+1):# 前缀和
arr[i] = nums[i] + arr[i-1]
if arr[i] > ro[i-1]:
return False
return True
l,r = 0,m+1
if check(m):
print(0)
else:
while l+1 != r:
mid = (l+r) // 2
if check(mid):
l = mid
else:
r = mid
print(-1)
print(r)
`