Example

Input

R?????,2?)


Output

29
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>P;
string dp[51][51],s;
string MAX(string &a,string &b){
    if(a=="invalid")return b;
    if(b=="invalid")return a;
    if(a.size()>b.size())return a;
    else if(a.size()<b.size())return b;
    else return a<b?b:a;
}
string get_num(int l,int r){
    string res;
    if(l<r&&s[l]=='0')return "invalid";
    for(int i=l;i<=r;i++){
        if(s[i]!='?'&&!isdigit(s[i]))return "invalid";
        res+= (s[i]=='?'?'9':s[i]);
    }
    return res;
}
string dfs(int l,int r){
    if(dp[l][r]!="")return dp[l][r];
    string res=get_num(l,r);
    if(res!="invalid")return res;
    if(s[l+1]!='('&&s[l+1]!='?'||s[r]!=')'&&s[r]!='?')return "invalid";
    for(int i=l+3;i<=r-2;i++){
        if(s[i]!=','&&s[i]!='?')continue;
        string lm=dfs(l+2,i-1);
        string rm=dfs(i+1,r-1);
        if(lm=="invalid"||rm=="invalid")continue;
        if(s[l]=='L'||s[l]=='?')res=MAX(res,lm);
        if(s[l]=='R'||s[l]=='?')res=MAX(res,rm);
    }
    return dp[l][r]=res;
}
int main(){
    cin>>s;
    cout<<dfs(0,s.size()-1)<<endl;
}
