Example

Input

R?????,2?)


Output

29
#include<bits/stdc++.h>
using namespace std;
#define int long long
string s;
bool used[2][100][100];
string memo[2][100][100];
bool used2[2][100][100];
string memo2[2][100][100];
string dfs(int,int,int);
string dfs2(int,int,int);

string nine(string s){
  for(int i=0;i<(int)s.size();i++)
    if(s[i]=='?') s[i]='9';
  return s;
}
bool check(string s){
  if(s=="!") return 0;
  if(s.size()==1) return 1;
  return s[0]!='0';
}
string comp(string a,string b){
  if(!check(a)&&!check(b)) return "!";
  if(!check(a)) return b;
  if(!check(b)) return a;
  if(a.size()>b.size()) return a;
  if(b.size()>a.size()) return b;
  return max(a,b);
}
string dfs(int l,int r,int f){
  if(used[f][l][r]) return memo[f][l][r];
  used[f][l][r]=1;
  string& res=memo[f][l][r];
  res="!";
  {
    //all digit
    bool ff=1;
    for(int i=l;i<r;i++)
      ff&=(isdigit(s[i])||s[i]=='?');
    if(ff)
      res=comp(res,nine(s.substr(l,r-l)));
  }
  if(l+1<r&&(s[l+1]=='?'||s[l+1]=='(')){
    if(s[r-1]=='?'||s[r-1]==')'){
      if(s[l]=='?'||s[l]=='L'){
	res=comp(res,dfs2(l+2,r-1,0));
      }
      if(s[l]=='?'||s[l]=='R'){
	res=comp(res,dfs2(l+2,r-1,1));
      }
    }
  }
  return res;
}
string dfs2(int l,int r,int f){
  if(used2[f][l][r]) return memo2[f][l][r];
  used2[f][l][r]=1;
  string& res=memo2[f][l][r];
  res="!";
  for(int i=l+1;i<r-1;i++){
    if(s[i]!='?'&&s[i]!=',') continue;
    string a=dfs(l,i,0);
    string b=dfs(i+1,r,0);
    if(check(a)==0||check(b)==0) continue;
    if(f) res=comp(res,b);
    else res=comp(res,a);
  }
  return res;
}
    
signed main(){
  cin>>s;
  string ans=dfs(0,s.length(),0);
  cout<<(ans!="!"?ans:"invalid")<<endl;
  return 0;
}