#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<algorithm>  
#include<map>
#include<vector>
#include<queue> 
using namespace std;  
const int max_n=1111;
double p[max_n]={};
//double数组p[max_n]表示多项式
//先读入第一个多项式再读入第二个多项式,并把对应系数直接加到第一个多项式上
int main(){   
        int k,n,count=0;
    double a;
    scanf("%d",&k);
    for(int i=0;i<k;i++){
      scanf("%d %lf",&n,&a);
      p[n]+=a;
    }
    scanf("%d",&k);
    for(int i=0;i<k;i++){
      scanf("%d %lf",&n,&a);
      p[n]+=a;
    }
    for(int i=0;i<max_n;i++){
      if(p[i]!=0){
        count++;
      }
    }
    printf("%d",count);
    for(int i=max_n-1;i>=0;i--){
      if(p[i]!=0){
        printf(" %d %.1f",i,p[i]);
      }
    }
    system("pause");
    return 0;   
}