//思路:
//先獲得第一個多項式的係數,然後在輸入第二個係數時循環與第一個多項式的係數相乘,並將結果加到對應指數的係數上
//最後得到要輸出的所有非零係數的項
//沒必要開兩個數組
#include <cstdio>
struct Poly{
int exp;//指數
double cof;//係數
}poly[1001];
double ans[2001];
int main(){
int n,m,number = 0;
scanf("%d",&n);
for (int i = 0; i < n; i ++){
scanf("%d%lf",&poly[i].exp,&poly[i].cof);
}
scanf("%d",&m);
for (int i = 0; i < m; i ++){
int e;
double c;
scanf("%d%lf",&e,&c);
for (int j = 0; j < n; j ++){
ans[e + poly[j].exp] += c * poly[j].cof;
}
}
for (int i = 0; i <= 2000; i ++){
if (ans[i] != 0) number ++;
}
printf("%d",number);
for (int i = 2000; i >= 0; i --){
if (ans[i] != 0.0) printf(" %d %.1lf",i,ans[i]);
}
return 0;
}