#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
using namespace std;
//英语 看博友分析 抄博友程序 枚举+位运算 背
struct nod{
int a;
int pb;
};
int main()
{
//cout<<(1<<17)<<endl;
vector<nod> ve;
ve.clear();
string s;
while(cin>>s)//因为输入wa
{
if(s==".")
{
int i;
for(i=0;i<(1<<16);i++)
{
int flag=0;
for(int j=0;j<ve.size();j++)
{
//if(i<10)
{
//cout<<i<<" "<<j<<" "<<~(i^ve[j].a)<<" "<<(~(i^ve[j].a)&ve[j].pb)<<endl;
}
if((~(i^ve[j].a)&ve[j].pb)!=0)
{
}else
{
flag=1;
//cout<<i<<" "<<ve[j].a<<endl;
break;
}
}
if(flag==0)
{
cout<<"Toppings: ";
for(int t=0;t<16;t++)
{
//cout<<t<<" "<<((1<<t)&(i))<<endl;
if(((1<<t)&(i))!=0)
{
cout<<(char)('A'+t);
}
}
cout<<endl;
//cout<<i<<endl;
break;
}
}
if(i==(1<<16))
{
cout<<"No pizza can satisfy these requests."<<endl;
}
ve.clear();
}else
{
int sum=0;
int pb=0;//屏蔽
for(int i=1;i<s.size();i=i+2)
{
int b=s[i]-'A';
int a=0;
if(s[i-1]=='+')
{
a=1;
}
pb=pb|(1<<b);//+号 wa
//cout<<(a<<b)<<endl;
sum=sum|(a<<b);
}
//cout<<sum<<" "<<pb<<endl;
ve.push_back((nod){sum,pb});
}
}
return 0;
}