#题目:
#思路:
不难但是挺好玩的题目:] 要注意多种情况以及有点常识. ~~~
AC.
#include <iostream>
#include <cstdio>
using namespace std;
int C, n;
int a[105], b[105], c[105];
int main()
{
//freopen("in", "r", stdin);
while(~scanf("%d %d", &C, &n)) {
int out, in, lef;
int ok = 1;
for(int j = 0; j < n; ++j) {
scanf("%d %d %d", &a[j], &b[j], &c[j]);
}
int i;
for(i = 0; i < n; ++i) {
if(i == 0) {
if(a[0] > 0 || (b[0] < C && c[0] > 0)) break;
else {
in = b[0];
lef = c[0];
}
}
else if(i == n-1) {
if((in - a[i] + b[i]) > 0 || (in-a[i]+b[i]+lef > C) || c[i] > 0)
break;
}
else {
if((in - a[i] + b[i]) > C || (in-a[i]+b[i] < C && c[i] > 0))
break;
else {
in = in - a[i]+b[i];
lef = c[i];
}
}
}
if(i == n) printf("possible\n");
else printf("impossible\n");
}
return 0;
}