#include<stdio.h>
#include<string.h>
typedef struct
{
int xishu;
int zhishu;
}elemtype;
int main()
{
elemtype a[100],b[100],c[200];
int lena,lenb,lenc;
char s1[101],s2[101],*t;
int i,j;
while(gets(s1) && strlen(s1))
{
gets(s2);
lena=lenb=lenc=0;
t=strtok(s1," \n\t");
while(t)
{
sscanf(t,"%d",&a[lena].xishu);
t=strtok(NULL," \n\t");
sscanf(t,"%d",&a[lena].zhishu);
t=strtok(NULL," \t\n");
lena++;
}
t=strtok(s2," \n\t");
while(t)
{
sscanf(t,"%d",&b[lenb].xishu);
t=strtok(NULL," \n\t");
sscanf(t,"%d",&b[lenb].zhishu);
t=strtok(NULL," \t\n");
lenb++;
}
i=j=0;
while(i<lena && j<lenb)
{
if(a[i].zhishu>b[j].zhishu)
{
c[lenc].zhishu=a[i].zhishu;
c[lenc].xishu=a[i].xishu;
++i;++lenc;
}
else if(a[i].zhishu<b[j].zhishu)
{
c[lenc].zhishu=b[j].zhishu;
c[lenc].xishu=b[j].xishu;
++j;++lenc;
}
else if(a[i].zhishu==b[j].zhishu)
{
if(a[i].xishu+b[j].xishu)
{
c[lenc].zhishu=a[i].zhishu;
c[lenc].xishu=a[i].xishu+b[j].xishu;
++lenc;
}
++i;++j;
}
}
while(i<lena)
{
c[lenc].xishu=a[i].xishu;
c[lenc].zhishu=a[i].zhishu;
++lenc;
++i;
}
while(j<lenb)
{
c[lenc].xishu=b[j].xishu;
c[lenc].zhishu=b[j].zhishu;
++lenc;
++j;
}
for(i=0;i<lenc;i++)
printf("%d %d ",c[i].xishu,c[i].zhishu);
printf("\n");
}
return 0;
}
/**************************************************************
Problem: 2141
User: admin
Language: C
Result: Accepted
Time:9 ms
Memory:1144 kb
****************************************************************/