#include <iostream>
using namespace std;
float a[1010],b[1010],c[2010];
int main()
{
int k;cin>>k;
int index=0;
int i=0;
float x1;
for( i=0;i<k;i++)
{
cin>>index;
//cout<<index;
cin>>x1;
a[index]+=x1;
}
int k2;cin>>k2;
for(i=0;i<k2;i++)
{
cin>>index;
cin>>x1;
b[index]+=x1;
}
// cout<<b[0]<<endl;
// cout<<b[1]<<endl;
int max1=1000,max2=1000;//找出最大指数
//上面出错了,没有赋初值,导致在特殊情况下max1=0,导致结果错误!
k=1000;
while(a[k]==0){k--;max1=k;}
k=1000;
while(b[k]==0){k--;max2=k;}
// cout<<"max1 "<<max1<<endl;
// cout<<"max2 "<<max2<<endl;
for(i=0;i<=max1;i++)
{
for(int j=0;j<=max2;j++)
{
c[j+i]+=a[i]*b[j];
}
}
k=2000;
int max3=0;
while(c[k]==0){k--;max3=c[k];}
int ans=0;
for( i=2000;i>=0;i--)
{
if(c[i]!=0)ans++;
}
cout<<ans;
for( i=k;i>=0;i--)
{
if(c[i]!=0)
// cout<<" "<<i<<" "<<c[i];
printf(" %d %0.1lf",i,c[i]);
}
cout<<endl;
return 0;
}
09-11
09-11
09-11
09-11
09-11