#include <iostream>
#include <cstdio>
using namespace std;
int main(int argc, char** argv) {
int k1,k2;
scanf("%d",&k1);
double p1[1001]={0},p2[1001]={0};
for(int i=0;i<k1;i++){
int m1; //幂级数和系数;
double x1;
scanf("%d%lf",&m1,&x1);
p1[m1]=x1;
}
scanf("%d",&k2);
for(int i=0;i<k2;i++){
int m2;
double x2;
scanf("%d%lf",&m2,&x2);
p2[m2]=x2;
}
double p3[1001]={0};
for(int i=0;i<1001;i++){
if(p1[i]!=0 || p2[i]!=0)
p3[i]=p1[i]+p2[i];
}
int count=0;
for(int i=0;i<1001;i++){
if(p3[i]!=0) count++;
}
printf("%d",count);
for(int i=1000;i>=0;i--){
if(p3[i]!=0){
printf(" %d %.1f",i,p3[i]);
}
}
return 0;
}
#include <cstdio>
using namespace std;
int main(int argc, char** argv) {
int k1,k2;
scanf("%d",&k1);
double p1[1001]={0},p2[1001]={0};
for(int i=0;i<k1;i++){
int m1; //幂级数和系数;
double x1;
scanf("%d%lf",&m1,&x1);
p1[m1]=x1;
}
scanf("%d",&k2);
for(int i=0;i<k2;i++){
int m2;
double x2;
scanf("%d%lf",&m2,&x2);
p2[m2]=x2;
}
double p3[1001]={0};
for(int i=0;i<1001;i++){
if(p1[i]!=0 || p2[i]!=0)
p3[i]=p1[i]+p2[i];
}
int count=0;
for(int i=0;i<1001;i++){
if(p3[i]!=0) count++;
}
printf("%d",count);
for(int i=1000;i>=0;i--){
if(p3[i]!=0){
printf(" %d %.1f",i,p3[i]);
}
}
return 0;
}