for i=1..N
for v=0..V
f[v]=max{f[v],f[v-cost]+weight}
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#include<stack>
#include<vector>
#include<cmath>
#include<string>
using namespace std;
int dp[10001];
int inf = -1000000;
int main()
{
int e, f, w[501], p[501];
int t;
scanf("%d", &t);
while(t--)
{
int i, j, n;
scanf("%d%d", &e, &f);
f -= e;
dp[0] = 0;
scanf("%d", &n);
for(i = 1; i <= f; i++) dp[i] = inf;
for(i = 0; i < n; i++) scanf("%d%d", &p[i], &w[i]);
for(i = 0; i < n; i++) p[i] = -p[i];
for(i = 0; i < n; i++)
for(j = w[i]; j <= f; j++)
dp[j] = max(dp[j], dp[j - w[i]] + p[i]);
if(dp[f] == inf)
printf("This is impossible.\n");
else
printf("The minimum amount of money in the piggy-bank is %d.\n", -dp[f]);
}
return 0;
}