#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")