#include
#include
typedef struct LNode
{ int en;
int cn;
struct LNode next;
} LinkNode;
void DestoryList(LinkNode *&L)
{
LinkNode *pre=L,*p=L->next;
while(p!=NULL)
{ free(pre);
pre=p;
p=pre->next;
}
free(pre);
}
void print(LinkNode *&L) {
LinkNode *p =L->next;
if(L->next->cn==NULL && L->next->en==NULL)
printf("0 0");
else{
while (p!=NULL) {
if (p->cn!=0)
printf("%d %d",p->cn,p->en);
p=p->next;}
}
}
void equation(LinkNode *&L) {
LinkNode *p=L->next,*q;
while (p!=NULL) {
p=(LinkNode *)malloc(sizeof(LinkNode));
q=p->next;
if (p->en==0){
p->next=q->next;
free(q);
}
else {
p->cn=p->en;
p->en--;
}
p=p->next;
}
}
int main()
{
LinkNode *L,*p=L,*node;
int cn,en;
L=(LinkNode *)malloc(sizeof(LinkNode));
while(scanf("%d %d",&cn,&en)!=EOF){
node=(LinkNode *) malloc(sizeof(LinkNode));
node->cn=cn;
node->en=en;
p->next=node;
p=node;}
p->next=NULL;
printf("%d",L->next->cn);
equation(L);
print(L);
DestoryList(L);
return 0;
}