int main(void) { int i, j, k; int x, y, z; while(scanf("%d %d", &n, &m)) { if(n == 0 && m == 0) break; /* input */ scanf("%d %d %d", &x, &y, &z); gift = box(x, y, z); for(i = 0; i < m; i++) { scanf("%d %d %d", &x, &y, &z); stock[i] = box(x, y, z); } /* ordena stock */ qsort(stock, m, sizeof(box), boxcmp); /* percorre stock */ bool found = false; for(i = 0; i < m; i++) { if(gift.cabeEm(stock[i])) { /* verifica se tem n caixas do tipo stock[i] */ int cnt = 0; for(j = i; j < m; j++) if(stock[i] == stock[j]) cnt++; if(cnt >= n) { found = true; break; } } } /* output */ if(found) printf("%d\n", stock[i].calcVolume() - gift.calcVolume()); else printf("impossible\n"); } return 0; }