#include<bits/stdc++.h>
using namespace std;
struct node{
int id,s,t,p;
};
node a[20000];
void heapon(int i){
while(i>1){
int j=i/2;
if(a[j].p>a[i].p)break;
if(a[j].p==a[i].p&&a[j].s<a[i].s)break;
swap(a[j],a[i]);
i=j;
}
}
void heapd(int i,int n){
while(i<=n/2){
int j=i*2;
if(j<n&&a[j+1].p>a[j].p)j++;
if(a[i].p>a[j].p)break;
if(a[i].p==a[j].p&&a[i].s<a[j].s)break;
swap(a[i],a[j]);
i=j;
}
}
int id1,s1,t1,p1;
int main(){
int la=1;
cin>>a[1].id>>a[1].s>>a[1].t>>a[1].p;
int ct,ft;
ct=a[1].s;
int result;
while(result==scanf("%d %d %d %d \n",&id1,&s1,&t1,&p1)!=EOF){
ft=s1-ct;ct=s1;
while(la>0&&ft>0){
if(a[1].t<=ft){
ft-=a[1].t;
cout<<a[1].id<<" "<<ct-ft<<endl;
swap(a[1],a[la]);
la--;
heapd(1,la);
}
else {
a[1].t-=ft;
ft=0;
}
}
a[++la].id=id1;a[la].s=s1;a[la].t=t1;a[la].p=p1;
heapon(la);
}
while(la){
ct+=a[1].t;
cout<<a[1].id<<" "<<ct<<endl;
swap(a[1],a[la]);
la--;
heapd(1,la);
}
return 0;
}