#include <iostream>
#include <algorithm>
#include <cstdio>
#include <string.h>
#define ll long long
using namespace std;
ll t , a , b , k , d , q;
ll ans[1000000] , ou[1000000] , tmpa[1000000] , tmpb[1000000];
bool mark[1005];
ll gcd (ll a , ll b){
if (a%b == 0) return b;
return gcd(b,a%b);
}
bool cmp (ll a1 , ll b1 , ll a2 , ll b2){
a1 *= b2;
a2 *= b1;
return a1 > a2;
}
bool fcmp (ll a , ll b){
return a > b;
}
bool IDA (ll a , ll b , ll dd){
if (dd == d){
if (b%a == 0){
ans[dd] = b/a;
for (ll i = dd ; i >= 1 ; i--){
if (ou[i] > ans[i]){
for (ll j = 1 ; j <= dd ; j++)
ou[j] = ans[j];
break;
}
else if (ou[i] < ans[i]){
break;
}
}
return true;
}
return false;
}
bool flag = false;
for (ll i = ans[dd-1]+1 ; cmp((d-dd+1),i,a,b) ; i++){
ll aa = a*i-b , bb = b*i;
ll GCD = gcd(aa,bb);
aa /= GCD , bb /= GCD;
ans[dd] = i;
if (mark[i]) continue;
if ((aa < 0) ^ (bb < 0)) continue;
if (IDA(aa,bb,dd+1)){
flag = true;
}
}
return flag;
}
int main(){
scanf("%lld" , &t);
ans[0] = 1;
for (ll i = 1 ; i <= t ; i++){
scanf("%lld%lld%lld" , &a , &b , &k);
memset (mark , 0 , sizeof (mark));
memset (ou , 0x3f , sizeof (ou));
for (ll j = 1 ; j <= k ; j++) scanf("%lld" , &q) , mark[q] = true;
for (d = 1 ; ; d++)
if (IDA(a,b,1))
break;
printf("Case %lld: %lld/%lld=" , i , a , b);
for (ll i = 1 ; i < d ; i++)
printf("1/%lld+" , ou[i]);
printf("1/%lld\n" , ou[d]);
}
return 0;
}