/*
完全背包问题
但这题是求最小的值,所以这样把pis数组初始化为无穷大
把pis[0]初始化为0,然后把01背包的状态方程改为
for(i=1;i<=n;i++)
for(j=w;j<=f-e;j++)
pis[j]=min(pis[j],pis[j]+p);
*/
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
#include<cstdlib>
#define INF 0xfffffff
using namespace std;
int pis[10010];
int main()
{
int t, e, f;
cin >> t;
while(t-- && cin >> e >> f)
{
int n, m = f-e, p, w;
for(int i = 1; i <= m; i++)//初始化为无穷大
pis[i] = INF;
pis[0] = 0;//初始化为0
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> p >> w;
for(int j = w; j <= m; j++)
pis[j] = min(pis[j],pis[j-w]+p);
}
if(pis[m] != INF)
printf("The minimum amount of money in the piggy-bank is %d.\n",pis[m]);
else printf("This is impossible.\n");
}
return 0;
}