Example

Input

R?????,2?)


Output

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

bool compare(const string &a,const string &b){
  if(b=="invalid") return 0;
  if(a=="invalid") return 1;
  if(a.size()!=b.size()) return a.size()<b.size();
  for(int i=0;i<(int)a.size();i++)if(a[i]!=b[i]) return a[i]<b[i];
  return 0;
}

string getNum(int l,int r){
  string res;
  if(l<r && A[l]=='0')  return "invalid";
  for(int i=l;i<=r;i++){
    if(!isdigit(A[i])&&A[i]!='?') return "invalid";
    res += A[i]=='?'? '9':A[i];
  }
  return res;
}

string mem[100][100];
int used[100][100];
string dfs(int l,int r){
  if(l>r) return "invalid";
  if(used[l][r]++) return mem[l][r];

  string &res = mem[l][r] = "invalid";
  res = getNum(l,r);
  if(res!="invalid") return res;

  if(A[l]!='L'&&A[l]!='R'&&A[l]!='?')return res;
  if(A[l+1]!='('&&A[l+1]!='?')return res;
  if(A[r]!=')'&&A[r]!='?') return res;
  
  for(int i=l+3;i<=r-2;i++){
    if(A[i]!=','&&A[i]!='?') continue;
    string L = dfs(l+2,i-1);
    string R = dfs(i+1,r-1);
    if(L=="invalid"||R=="invalid")continue;
    if((A[l]=='?'||A[l]=='L')&&compare(res,L)) res = L;
    if((A[l]=='?'||A[l]=='R')&&compare(res,R)) res = R;
  }
  return res;
}


int main(){
  cin>>A;
  A+='#';
  cout<<dfs(0,A.size()-2)<<endl;
  return 0;
}