#include <cstdio>
#include <cmath>
unsigned long long point[1010][2] = { 0 }, task1[1010][2] = { 0 }, task2[1010] = { 0 }, finishtime[1010] = { 0 },
neartime[1010] = { 0 };
unsigned long long finish[1010] = { 0 };
int task3[1010][6] = { 0 };
bool sign[1010] = { 0 };
int main() {
int x = 0, m, n;
long long ys = 0, t = 0;
unsigned long long money = 0;
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i++) {
int a;
scanf("%lld%llu%llu%llu%llu%llu%d%llu", &point[i][0], &point[i][1], &task1[i][0], &task1[i][1],
&task2[i], &neartime[i], &a, &finish[i]);
task3[i][0] = a;
for (int j = 1; j <= a; j++) scanf("%d", &task3[i][j]);
}
for (int i = 1; i <= m; i++) {
int y, dlt;
scanf("%d", &y);
dlt = y - x;
if(dlt < 0)
dlt = -dlt;
t += dlt;
x = y;
ys += point[x][0];
money += point[x][1];
point[x][1] = 0;
finishtime[x] = t;
sign[x] = 1;
if (finish[x] > 0 && task1[x][1] >= t && t >= task1[x][0]) {
if (ys >= task2[x]&&ys>=0) {
bool flag = 1;
for (int j = 1; j <= task3[x][0]; j++)
if (!sign[task3[x][j]] || t-finishtime[task3[x][j]] > neartime[x])
flag = 0;
if (flag) {
money += finish[x];
finish[x] = 0;
printf("%d\n", x);
}
}
}
}
printf("%llu", money);
return 0;
}