/*
jai shree ram _/\_
A hacker from NITP
*/

#include<bits/stdc++.h>
using namespace std;

#define mod 1000000007
typedef set<string> ss;
typedef vector<int> vs;
typedef map<int,char> msi;
typedef pair<int,int> pa;
typedef long long int ll;

vector<ll> v;
map<ll,int> m;
ll k;
void dfs(ll s)
{
	if(m[s]>0)
		return;
	v.push_back(s);
	m[s]=v.size();
	dfs(s&k);
	dfs(s|k);
	dfs(s^k);
}

ll n,x,s,i,j;
long double a,b,c,ans,f[2][1000004];
int main()
{
	//freopen("C-large-practicea.in", "r", stdin);
  	//freopen("C-large-practiceao.out", "w", stdout);
  	ios_base::sync_with_stdio(false);
  	cin.tie(0);
  	memset(f,0,sizeof(f));
  	int t,p=1;
	cin>>t;
	while(t--)
	{
	    cout<<"Case #"<<p++<<": ";
		cin>>n>>x>>k>>a>>b>>c;
		a/=100; b/=100; c/=100;
		m.clear();
		v.clear();
		dfs(x);
		s=v.size();
		f[1][(m[x&k]-1)]+=a; f[1][(m[x|k]-1)]+=b; f[1][(m[x^k]-1)]+=c;
		for(i=1;i<n;i++)
		{
			for(j=0;j<s;j++)
			f[(i+1)&1][j]=0;
			for(j=0;j<s;j++)
			{
				f[(i+1)&1][(m[v[j]&k]-1)]+=f[i&1][j]*a;
				f[(i+1)&1][(m[v[j]|k]-1)]+=f[i&1][j]*b;
				f[(i+1)&1][(m[v[j]^k]-1)]+=f[i&1][j]*c;
			}
		}
		ans=0;
		for(j=0;j<s;j++)
			ans+=(long double)f[n&1][j]*v[j];
		cout<<fixed<<setprecision(12)<<ans<<"\n";
		for(i=0;i<2;i++)
		for(j=0;j<s;j++)
		f[i][j]=0;
	}
	return 0;
}
