Example

Input

R?????,2?)


Output

29
#include <cstdio>
#include <cstring>
#include <string>
#include <cctype>
#include <iostream>
using namespace std;

string str;
string dp[51][51];

string memo(int l,int r){
	if(dp[l][r]!="")return dp[l][r];
	bool flag=true;
	string num="";
	for(int i=l;i<r;i++){
		if(str[i]>='0' && str[i]<='9')num+=str[i];
		else if(str[i]=='?')num+='9';
		else flag=false;
	}
	if(flag && (num[0]!='0' || num.size()==1) && num.size()>0){
		return (dp[l][r]=num);
	}
	flag=false;
	string res="";
	if(str[l+1]=='?' || str[l+1]=='('){
		if(str[r-1]=='?' || str[r-1]==')'){
			for(int i=l+2;i<r-1;i++){
				if(str[i]==',' || str[i]=='?'){
					string left=memo(l+2,i);
					string right=memo(i+1,r-1);
					if(left=="invalid" || right=="invalid")continue;
					if(str[l]=='?' || str[l]=='L'){
						if(res.size()<left.size() || (res.size()==left.size() && res<left)){
							res=left;
							flag=true;
						}
					}
					if(str[l]=='?' || str[l]=='R'){
						if(res.size()<right.size() || (res.size()==right.size() && res<right)){
							res=right;
							flag=true;
						}
					}
				}
			}
		}
	}
	return flag?(dp[l][r]=res):"invalid";
}

int main(void){
	cin >> str;
	for(int i=0;i<=str.size();i++){
		for(int j=0;j<=str.size();j++){
			dp[i][j]="";
		}
	}
	cout << memo(0,str.size()) << endl;
	return 0;
}