Example #1
0
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;
}