Example

Input

R?????,2?)


Output

29
#include<stdio.h>
#include<algorithm>
#include<string>
#include<string.h>
using namespace std;
string dp[100][100];
char in[100];
bool gt(string a,string b){
	if(a[0]=='i')return false;
	if(b[0]=='i')return true;
	if(a.size()!=b.size())return a.size()>b.size();
	for(int i=0;i<a.size();i++)if(a[i]!=b[i])return a[i]>b[i];
	return false;
}
string calc(int a,int b){
	if(dp[a][b].size())return dp[a][b];
	string ret="invalid";
	bool on=true;
	string cur="";
	for(int i=a;i<b;i++){
		if(in[i]=='?')cur+='9';
		else if('0'<=in[i]&&in[i]<='9')cur+=in[i];
		else on=false;
	}
	if(cur.size()>1&&cur[0]=='0')on=false;
	if(on)ret=cur;
	bool L=true;
	bool R=true;
	if(b-a<6||(in[a+1]!='?'&&in[a+1]!='(')||(in[b-1]!='?'&&in[b-1]!=')'))L=R=false;
	if(in[a]!='L'&&in[a]!='?')L=false;
	if(in[a]!='R'&&in[a]!='?')R=false;
	for(int i=a+3;i<b-2;i++){
		if(in[i]!='?'&&in[i]!=',')continue;
		if(L){
			string left=calc(a+2,i);
			string right=calc(i+1,b-1);
			if(left[0]!='i'&&right[0]!='i'){
				if(gt(left,ret))ret=left;
			}
		}
		if(R){
			string left=calc(a+2,i);
			string right=calc(i+1,b-1);
			if(left[0]!='i'&&right[0]!='i'){
				if(gt(right,ret))ret=right;
			}
		}
	}
	//printf("%d %d: %s\n",a,b,ret.c_str());
	return dp[a][b]=ret;
}
int main(){
	scanf("%s",in);
	for(int i=0;i<100;i++)for(int j=0;j<100;j++)dp[i][j]="";
	int n=strlen(in);
	printf("%s\n",calc(0,n).c_str());
}