#include
#define len 1000
using namespace std;
int main(void){
//定义
int r=0,y=0,g=0,time=0;
int n=0;
int a[len];
int timeflag;
int i=0,j=0,t1=0,t2=0,t3=0;
//输入+逻辑
cin>>r>>y>>g;
cin>>n;
for(i=0;i<n;i++){
cin>>a[i];
cin>>timeflag;
if(a[i]==0){
time=time+timeflag;
}
if(a[i]==1){
if(time<=timeflag){
time=timeflag-time;
}
else{
t1=(time-timeflag)%(g+y+r);
t2=(time-timeflag)/(g+y+r);
t3=((t2+1)*(g+y+r))+timeflag-time;
if((t1>=g)&&(t1<=(g+y))){ //黄
time=time+t3+r;
}
if((t1>(g+y))&&(t1<=(g+y+r))){
time=time+t3;//红
}
}
}
if(a[i]==2){
if(time<=timeflag){
time=timeflag-time+r;
}
else{
t1=(time-timeflag)%(g+y+r);
t2=(time-timeflag)/(g+y+r);
if(t1<=r){ //红
t3=((t2)*(g+y+r))+timeflag+r-time;
time=time+t3;
}
if((t1>=(g+r))&&(t1<=(g+y+r))){//黄
t3=((t2+1)*(g+y+r))+timeflag+r-time;
time=time+t3;
}
}
}
if(a[i]==3){
if(time>=timeflag){
t1=(time-timeflag)%(g+y+r);
t2=(time-timeflag)/(g+y+r);
t3=((t2)*(g+y+r))+timeflag+y+r-time;
if(t1<=y){ //黄
time=time+t3;
}
if((t1>y)&&(t1<=(y+r))){//红
time=time+t3;
}
}
}
}
cout<<time<<endl;
}