#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
int line[1000010], l[1000010], r[1000010], d[1000010], change[1000010];
int n, m;
int check(int x)
{
int count= 0;
memset(change,0,sizeof(change));
for(int i = 1;i<=n;i++)
{
change[i] = line[i] - line[i-1];
}
for (int i = 1; i <= x; i++)
{
change[l[i]] -= d[i];
change[r[i]+ 1] += d[i];
}
for (int i = 1; i <= n; i++)
{
line[i] = line[i-1] + change[i];
}
for (int i = 1; i <= n; i++)
if(line[i] < 0)
{
return 0;
}
return 1;
}
int main()
{
scanf("%d %d", &n, &m);
for (int i = 1; i <= n; i++)
scanf("%d", &line[i]);
for (int i = 1; i <= m; i++)
scanf("%d %d %d", &d[i], &l[i], &r[i]);
printf("%d\n",check(m));
if(check(m))
{
printf("0");
return 0;
}
int left = 1, right = m, mid;
while(left<=right)
{
mid = (left + right) >> 1;
if(check(mid))
left = mid + 1;
else
right = mid;
}
printf("-1\n");
printf("%d", left);
return 0;
}