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

int bin(int x,int y,char e)
{
  if(e == '+')
    {
      return x | y;
    }
  else if(e == '*')
    {
      return x & y;
    }
  else
    {
      return x ^ y;
    }
}
int compute(const string &str,int a,int b,int c,int d){
  
  stack<int>s;
  stack<char>op;
  char e;
  int x,y,z;
  for(int i=0;i < str.size();i++)
    {
      if(str[i] == 'a')
	{
	  s.push(a);
	}
      else if(str[i] == 'b')
	{
	  s.push(b);
	}
      else if(str[i] == 'c')
	{
	  s.push(c);
	}
      else if(str[i] == 'd')
	{
	  s.push(d);
	}
      
      if(str[i] == '+')
	{
	  op.push('+');
	}
      else if(str[i] == '*')
	{
	  op.push('*');
	}
      else if(str[i] == '^')
	{
	  op.push('^');
	}

      if(str[i] == ']')
	{
	  e = op.top();
	  op.pop();
	  x = s.top();
	  s.pop();
	  y = s.top();
	  s.pop();
	  s.push(bin(x,y,e));
	}
    }
  return s.top();
}

int main(){
  int n;
  string str;
  int cnt=0;

  while(1){
    cnt =0;
    cin >> str;
    if(str == ".") break;
    cin >> n;

    int key = compute(str, n/1000, n/100%10, n/10%10, n%10 );
    
    for(int a=0;a < 10;a++){
      for(int b=0;b < 10;b++){
	for(int c=0;c < 10;c++){
	  for(int d=0;d < 10;d++){
	    if( compute(str,a,b,c,d) == key){
	      cnt++;
	    }
	  }//d
	}//c
      }//b
    }//a
    cout << key << " " << cnt << endl;

    
  }// while
  
  return 0;
}
