#include #include #include #include #include #include #include #include #include #include #define inf 1<<30 #define M 200005 #define N 200005 #define maxn 300005 #define eps 1e-10 #define zero(a) fabs(a) #define Min(a,b) ((a)<(b) (a):(b)) #define Max(a,b) ((a)>(b) (a):(b)) #define pb(a) push_back(a) #define mp(a,b) make_pair(a,b) #define mem(a,b) memset(a,b,sizeof(a)) #define LL long long #define lson step<<1 #define rson step<<1|1 #define MOD 1000000009 #define sqr(a) ((a)*(a)) #define Key_value ch[ch[root][1]][0] //#pragma comment(linker, "/STACK:1024000000,1024000000") using namespace std; int t[100005],f[100005]; int L=100000; double H=100.0; bool flag[105]; int main() { int hl,hr,n,val[105]; while(scanf("%d%d%d",&hl,&hr,&n)!=EOF) { mem(t,0);mem(f,0); for(int i=1;i<=n;i++) { int l,r;char str[10]; scanf("%d%s%d%d",&val[i],str,&l,&r); if(str[0]=='F') for(int j=l;j<=r;j++) f[j]=i; else for(int j=l;j<=r;j++) t[j]=i; } int ans=0; for(int i=1;i<=n;i++) { double tmp=0; if(i&1) tmp+=hl/H+(i-1)+hr/H; else tmp+=hl/H+(i-1)+(H-hr)/H; double l=L/tmp; double pos=l*hl/H; int des=1; int test=0; mem(flag,false); for(int j=1;j<=i;j++) { if(des) { if(f[(int)floor(pos)]==0&&f[(int)ceil(pos)]==0){test=-1;break;} int id=f[(int)floor(pos)]; if(flag[id]) {test=-1;break;} flag[id]=true;test+=val[id]; } else { if(t[(int)floor(pos)]==0&&t[(int)ceil(pos)]==0){test=-1;break;} int id=t[(int)floor(pos)]; if(flag[id]) {test=-1;break;} flag[id]=true;test+=val[id]; } pos+=l; des=1-des; } ans=max(ans,test); tmp=0; if(i&1) tmp+=(H-hl)/H+(i-1)+(H-hr)/H; else tmp+=(H-hl)/H+(i-1)+hr/H; l=L/tmp; pos=l*(H-hl)/H;des=0; test=0; mem(flag,false); for(int j=1;j<=i;j++) { if(des) { if(f[(int)floor(pos)]==0&&f[(int)ceil(pos)]==0){test=-1;break;} int id=f[(int)floor(pos)]; if(flag[id]) {test=-1;break;} flag[id]=true;test+=val[id]; } else { if(t[(int)floor(pos)]==0&&t[(int)ceil(pos)]==0){test=-1;break;} int id=t[(int)floor(pos)]; if(flag[id]) {test=-1;break;} flag[id]=true;test+=val[id]; } des=1-des; pos+=l; } ans=max(ans,test); } printf("%d\n",ans); } return 0; }