#include <iostream>
using namespace std;
int MAT[105][105];
int VEC[105];
int ANS[105];
int row = 1, col,col_temp;
int sum;
int Stack;
string MAT1,VEC1;
int main() {
getline(cin,MAT1);
for(int i = 0; i < MAT1.length(); i++)
{
if(MAT1[i] == '[')
Stack++, col_temp = 1;
else if(MAT1[i] == ']')
{
if(row == 1)
col = col_temp;
if(MAT1[i+1] == ',' || MAT1[i+1] == ']')
row++;
Stack--;
}
else if(MAT1[i] == ',')
col_temp++;
else if(MAT1[i] >= '0' && MAT1[i] <= '9')
{
int val = 0, sign = 1;
if(MAT1[i-1] == '-')
sign = -1;
while(MAT1[i] >= '0' && MAT1[i] <= '9')
{
val = val * 10 + MAT1[i] - '0';
i++;
}
i--;
MAT[row][col_temp] = val * sign;
}
}
row--;
// cout<<row<<" "<<col<<endl;
// for(int i = 1; i <= row; i++)
// for(int j = 1; j <= col; j++)
// cout<<MAT[i][j]<<" ";
getline(cin,VEC1);
for(int i = 0; i < VEC1.length(); i++)
{
if(VEC1[i] >= '0' && VEC1[i] <= '9')
{
int val = 0, sign = 1;
if(VEC1[i-1] == '-')
sign = -1;
while(VEC1[i] >= '0' && VEC1[i] <= '9')
{
val = val * 10 + VEC1[i] - '0';
i++;
}
i--;
VEC[++sum] = val * sign;
}
}
// cout<<sum<<" "<<row<<" "<<col<<endl;
// cout<<sum<<endl;
// for(int i = 1; i<= sum; i++)
// cout<<VEC[i]<<" ";
// cout<<endl;
if(col != sum)
{
printf("-1");
return 0;
}
for(int i = 1; i <= row; i++)
for(int j = 1; j <= col; j++)
ANS[i] += MAT[i][j] * VEC[j];
printf("[%d",ANS[1]);
for(int i = 2;i <= row; i++)
printf(", %d",ANS[i]);
printf("]\n");
return 0;
}
// 64 位输出请用 printf("%lld")