#include<bits/stdc++.h>
using namespace std;
using Int = long long;
Int e1(string s,Int &p);
Int e2(string s,Int &p);
Int e3(string s,Int &p);
Int e4(string s,Int &p);
Int e5(string s,Int &p);
Int e6(string s,Int &p);
Int number(string s,Int &p);

bool f;
Int e1(string s,Int &p){
  Int res=e2(s,p);
  while(p<(Int)s.size()){
    if(s[p]=='|'){
      p++;
      res|=e2(s,p);
      continue;
    }
    break;
  }
  return res;
}
Int e2(string s,Int &p){
  Int res=e3(s,p);
  while(p<(Int)s.size()){
    if(s[p]=='^'){
      p++;
      res^=e3(s,p);
      continue;
    }
    break;
  }
  return res;
}

Int e3(string s,Int &p){
  Int res=e4(s,p);
  while(p<(Int)s.size()){
    if(s[p]=='&'){
      p++;
      res&=e4(s,p);
      continue;
    }
    break;
  }
  return res;
}

Int e4(string s,Int &p){
  Int res=e5(s,p);
  while(p<(Int)s.size()){
    if(s[p]=='+'){
      p++;
      res+=e5(s,p);
      continue;
    }
    if(s[p]=='-'){
      p++;
      res-=e5(s,p);
      continue;
    }
    break;
  }
  return res;
}

Int e5(string s,Int &p){
  Int res=e6(s,p);
  while(p<(Int)s.size()){
    if(s[p]=='*'){
      p++;
      res*=e6(s,p);
      continue;
    }
    break;
  }
  return res;
}

Int e6(string s,Int &p){
  Int res;
  if(s[p]=='('){
    p++;
    res=e1(s,p);
    f&=(p<(Int)s.size())&&s[p++]==')';
  }else{
    res=number(s,p);
  }
  return res;
}

Int number(string s,Int &p){
  if(p>=(Int)s.size()||!isdigit(s[p])||s[p]=='0') f=0;
  Int res=0;
  while(p<(Int)s.size()&&isdigit(s[p]))
    res=res*10+(s[p++]-'0');
  return res;
}

template<typename T1,typename T2> inline void chmin(T1 &a,T2 b){if(a>b) a=b;}
template<typename T1,typename T2> inline void chmax(T1 &a,T2 b){if(a<b) a=b;}

signed main(){  
  cin.tie(0);
  ios::sync_with_stdio(0);

  Int n;
  string s;
  string b="()*+-&^|0123456789";
  while(cin>>n>>s,s!="#"){
    if(n&1){
      Int p=0;
      Int ans=e1(s,p);
      for(Int i=0;i<(Int)s.size();i++){
	string t=s;
	t.erase(t.begin()+i);
	if(t=="") continue;
	p=0;f=1;
	Int tmp=e1(t,p);
	f&=(Int)t.size()==p;
	if(f) chmax(ans,tmp);
      }
      for(char c:b){
	for(Int i=0;i<=(Int)s.size();i++){
	  string t=s;
	  t.insert(t.begin()+i,c);
	  p=0;f=1;
	  Int tmp=e1(t,p);
	  f&=(Int)t.size()==p;
	  if(f) chmax(ans,tmp);
	}
      }
      cout<<ans<<endl;
    }else{
      Int p=0;
      vector<string> cand;
      for(Int i=0;i<(Int)s.size();i++){
	string t=s;
	t.erase(t.begin()+i);
	if(t=="") continue;
	p=0;f=1;
	Int tmp=e1(t,p);
	f&=(Int)t.size()==p;
	if(f) cand.emplace_back(t);
      }
      for(char c:b){
	for(Int i=0;i<=(Int)s.size();i++){
	  string t=s;
	  t.insert(t.begin()+i,c);
	  p=0;f=1;
	  Int tmp=e1(t,p);
	  f&=(Int)t.size()==p;
	  if(f) cand.emplace_back(t);
	}
      }
      Int ans=-1e12;
      for(string s:cand){
	if(0){
	  Int q=0;f=1;
	  cout<<s<<":"<<e1(s,q)<<endl;
	  cout<<f<<" "<<s.size()<<" "<<p<<endl;
	}
	Int res=1e12;
	for(Int i=0;i<(Int)s.size();i++){
	  string t=s;
	  t.erase(t.begin()+i);
	  if(t=="") continue;
	  p=0;f=1;
	  Int tmp=e1(t,p);
	  f&=(Int)t.size()==p;
	  if(f) chmin(res,tmp);
	}
	for(char c:b){
	  for(Int i=0;i<=(Int)s.size();i++){
	    string t=s;
	    t.insert(t.begin()+i,c);
	    p=0;f=1;
	    Int tmp=e1(t,p);
	    f&=(Int)t.size()==p;
	    if(f) chmin(res,tmp);
	  }
	}
	chmax(ans,res);
      }
      cout<<ans<<endl;
    } 
  }
  return 0;
}

