#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//【warning】double 输入%lf,输出%f
struct arr
{
int exp; //指数
double cof; //系数
}arr[1005];
double ans[2010]; //下标是指数,内容是系数
int main()
{
memset(arr,0,sizeof(arr));
memset(ans,0,sizeof(ans));
int n,m;
scanf("%d",&n); //第一个多项式n项
for(int i=0 ; i<n ; ++i)
{
scanf("%d %lf",&arr[i].exp,&arr[i].cof);
}
scanf("%d",&m);
for(int i=0 ; i<m ; ++i)
{
int exp; //第二个多项式指数
double cof; //第二个多项式系数
scanf("%d %lf",&exp,&cof);
for(int j=0 ; j<n ; ++j)
{
ans[exp+arr[j].exp]+=cof*arr[j].cof; //指数相加,系数相乘,存入相应指数的系数数组中
}
}
int num=0;
for(int i=0 ; i<2010 ; ++i) //统计项数
if(ans[i]!=0)
++num;
printf("%d",num);
for(int i=2009 ; i>=0 ; --i) //【warning】ans数组2010个元素,下标最多到2009
{
if(ans[i]!=0)
{
printf(" %d %.1f",i,ans[i]);
}
}
//system("pause");
return 0;
}