#include<iostream>
using namespace std;
struct {
int a;
double b;
}poly[1001];
double a[2001];//至少2000个位置
int main(){
int n,m,cnt=0,aa;
double bb;
cin>>n;
for(int i=0;i<n;i++){
cin>>poly[i].a>>poly[i].b;
}
cin>>m;
for(int i=0;i<m;i++){
int aa;
double bb;
cin>>aa>>bb;
for(int j=0;j<n;j++){
a[poly[j].a+aa]+=poly[j].b*bb; //这句蛮灵性的 ,仅此
}
}
for(int i=0;i<=2000;i++)
if(a[i]!=0)cnt++;
cout<<cnt;
for(int i=2000;i>=0;i--){
if(a[i]!=0){
printf(" %d %.1f",i,a[i]);
}
}
}
