#include <iostream>
#include <cstdio>
using namespace std;
struct node{
int x1,y1,x2,y2;
int s;
}rec[25];
int a[25];
int r;
void cover(int x1,int y1,int x2,int y2,int k){
while(k<r&&(x1>=rec[a[k]].x2||x2<=rec[a[k]].x1||y1>=rec[a[k]].y2||y2<=rec[a[k]].y1)) k++;
if(k>=r) {
rec[a[k-1]].s+=(x2-x1)*(y2-y1);
return ;
}
if(x1<rec[a[k]].x1){
cover(x1,y1,rec[a[k]].x1,y2,k+1);
x1=rec[a[k]].x1;
}
if(x2>rec[a[k]].x2){
cover(rec[a[k]].x2,y1,x2,y2,k+1);
x2=rec[a[k]].x2;
}
if(y1<rec[a[k]].y1){
cover(x1,y1,x2,rec[a[k]].y1,k+1);
y1=rec[a[k]].y1;
}
if(y2>rec[a[k]].y2){
cover(x1,rec[a[k]].y2,x2,y2,k+1);
y2=rec[a[k]].y2;
}
}
int main(){
//freopen("cin.txt","r",stdin);
int n,m;
int t=0;
while(cin>>n>>m&&(n+m)){
for(int i=0;i<n;i++){
scanf("%d%d%d%d",&rec[i].x1,&rec[i].y1,&rec[i].x2,&rec[i].y2);
}
printf("Case %d:\n",++t);
for(int k=1;k<=m;k++){
scanf("%d",&r);
for(int i=0;i<r;i++) {
scanf("%d",&a[i]);
a[i]--;
}
for(int i=0;i<n;i++){
rec[i].s=0;
}
for(int i=r-1;i>=0;i--){
cover(rec[a[i]].x1,rec[a[i]].y1,rec[a[i]].x2,rec[a[i]].y2,i+1);
}
int ans=0;
for(int i=0;i<r;i++) ans=ans+rec[a[i]].s;
printf("Query %d: %d\n",k,ans);
}
puts("");
}
return 0;
}