#include<bits/stdc++.h>
#include <string>
using namespace std;
typedef long long int ll;
#define mod 998244353
#define f2(n) for(long long int j=0;j<n;j++)
#define p(n) cout<<n<<endl;
#define f(n) for(long long int i=0;i<n;i++)
#define io_boost ios_base::sync_with_stdio(false);cin.tie(NULL);
inline int modular_inverse(ll a, ll m=mod) {
ll m1 = m;
ll y = 0, x = 1;
if (m == 1) {
return 0;
}
while (a > 1) {
ll q = a / m;
ll t = m;
m = a % m, a = t;
t = y;
y = x - q * y;
x = t;
}
if (x < 0) {
x += m1;
}
return x;
}
ll solve(){
string str1;
cin>>str1;
ll n=str1.size();
ll n1=0;
f(n)
{
if(str1[i]=='#'){n1++;}
}
if(n1==1)
{
ll ans=1;
ans%=mod;
ll q=4;
q%=mod;
ans=(ans*modular_inverse(q))%mod;
cout<<ans<<" "<<ans<<" "<<ans<<" "<<ans<<endl;
}
else
{
vector<char> temp;
vector<char> a;
for(int i=0;i<str1.size();i++)
{
if(str1[i]=='&'||str1[i]=='|'||str1[i]=='^')
{
temp.push_back(str1[i]);
}
else if(str1[i]==')'){
a.push_back(temp.back());
temp.pop_back();
}
}
long long int ans00,ans11,ansaa,ansAA;
long long int q=4;
if(a[0]=='&')
{
ans00=9;
ans11=1;
ansaa=3;
ansAA=3;
q*=4;
}
else if(a[0]=='|')
{
ans00=1;
ans11=9;
ansaa=3;
ansAA=3;
q*=4;
}
else
{
ans00=1;
ans11=1;
ansaa=1;
ansAA=1;
q=4;
}
for(ll i=1;i<a.size();i++)
{
if(a[i]=='&' && a[i-1]=='&')
{
q*=4;
ll ansaap1=2*(ansaa)+ans11;
ll ansAAp1=2*(ansaa)+ans11;
ll ans11p1=ans11;
ll ans00p1=(q-ans11p1-ansaap1-ansAAp1);
ans00=ans00p1;
ans11=ans11p1;
ansaa=ansaap1;
ansAA=ansAAp1;
}
else if(a[i]=='&' && a[i-1]=='|')
{
ll ansaap=((ans11)+2*(ansaa));
ll ansAAp=((ans11)+2*(ansaa));
ll ans00p=((ansaap*ansaap)/ans11);
ll ans11p=ans11;
ans00=ans00p;
ans11=ans11p;
ansaa=ansaap;
ansAA=ansAAp;
q*=4%mod;
}
else if(a[i]=='|' && a[i-1]=='&')
{
ll ans00p2=ans00;
ll ansaap2=(2*(ansaa)+ans00);
ll ansAAp2=(2*(ansaa)+ans00);
ll ans11p2=(((ansaap2)*(ansaap2))/ans00);
ans00=ans00p2;
ans11=ans11p2;
ansaa=ansaap2;
ansAA=ansAAp2;
q*=4;
}
else if(a[i]=='|' && a[i-1]=='|')
{
q*=4;
ll ans00p3=ans00;
ll ansaap3=(ansaa)*2+ans00;
ll ansAAp3=(ansAA)*2+ans00;
ll ans11p3=q-ans00p3-ansaap3-ansAAp3;
ans00=ans00p3;
ans11=ans11p3;
ansaa=ansaap3;
ansAA=ansAAp3;
}
else if(a[i]=='&' && a[i-1]=='^')
{
ans00=ans11=ansaa=ansAA=1;
ans00*=9;
ans11*=1;
ansaa*=3;
ansAA*=3;
q*=4;
}
else if(a[i]=='|' && a[i-1]=='^')
{
ans00=1;
ans11=9;
ansaa=3;
ansAA=3;
q*=4;
}
else if(a[i]=='^' && (a[i-1]=='^' || a[i-1]=='|' || a[i-1]=='&'))
{
q=4;
ans00=ans11=ansaa=ansAA=1;
}
}
ans00%=mod;
ans11%=mod;
ansaa%=mod;
ansAA%=mod;
q%=mod;
ans00=(ans00*modular_inverse(q))%mod;
ans11=(ans11*modular_inverse(q))%mod;
ansaa=(ansaa*modular_inverse(q))%mod;
ansAA=(ansAA*modular_inverse(q))%mod;
cout<<ans00<<" "<<ans11<<" "<<ansaa<<" "<<ansAA<<endl;
}
}
int main()
{
ll test;
cin>>test;
while(test--)
{
solve();
}
}