#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
struct Node{
int coef;
int expn;
Node *next;
};
Node n1[1000],n2[1000];
Node *insertNode(Node *head,int coef,int expn){
Node *newnode = new Node;
newnode->coef = coef;
newnode->expn = expn;
newnode->next = NULL;
if(head->next == NULL)
head->next = newnode;
else{
Node *p = head->next;
Node *pre = head;
while(p){
if(p->expn > newnode->expn){
p = p->next;
pre = pre->next;
}else{
pre->next = newnode;
newnode->next = p;
}
}
if(p == NULL)
pre->next = newnode;
}
return head;
}
Node *addNode(Node *head1,Node *head2){
Node *p1 = head1->next;
Node *pre = head1;
Node *p2 = head2->next;
while(p1 && p2){
if(p1 ->expn == p2->expn){
p1->coef += p2->coef;
if(p1->coef == 0)
pre->next = p1->next;
else
{
p1 = p1->next;
pre = pre->next;
}
p2 = p2->next;
}
else if(p1 ->expn > p2->expn){
p1 = p1->next;
pre = pre->next;
}
else{
Node *p = p2;
p2 = p2->next;
pre->next = p;
p->next = p1;
pre = p;
}
}
if(p2)
pre->next = p2;
return head1;
}
int main()
{
int n,m;
while(cin >> n){
Node *head1 = new Node;
Node *head2 = new Node;
head1->next = NULL;
head2->next = NULL;
for(int i = 0; i < n; i++){
int coef,expn;
cin >> coef >> expn;
head1 = insertNode(head1,coef,expn);
}
cin >> m;
for(int i = 0; i < m; i++){
int coef,expn;
cin >> coef >> expn;
head2 = insertNode(head2,coef,expn);
}
head1 = addNode(head1,head2);
Node *p = head1->next;
while(p && p->next){
cout << p->coef << " " << p->expn << " ";
p = p->next;
}
if(p)
cout << p->coef << " " << p->expn << endl;
}
return 0;
}