#include <iostream>
#include <string>
#include <algorithm>
#include <stdio.h>
#include <string.h>
#include <string>
#include <sstream>
#include <algorithm>
#include <iterator>
#include <cstdlib>

using namespace std;

string str1,str2;
string x;
string s1 = "[1 -2.5 3;4 5.25 6;7 8 9.12]";
string s2 = "[3 4.2 10.2;12 -1 0;67 2 13]";
string ns ;
const int n=3;  const int m=3;
float matrix1 [n][m];
float matrix2 [n][m];
float matrixsum [n][m];




string cutter(string &s) {
    s.erase(remove(s.begin(), s.end(), '['), s.end());
    s.erase(remove(s.begin(), s.end(), ']'), s.end());
    replace(s.begin(), s.end(), ';', ' ');
    ns = s;
return s;
}

void splitter(string x,float matrix[n][m]){


  stringstream os(x);
  string temp;


  for (int i=0;i<n;i++){

        for (int j=0;j<m;j++){

            if(os >> temp){

                 matrix [i][j] = atof(temp.c_str()) ;

            }

        }

    }

}

void showmatrix(float M[n][m]){
     cout <<"[" ;
    for (int i=0;i<n;i++){

        for (int j=0;j<m;j++){

            cout << M[i][j];
            if(j != m-1){
                cout<< " " ;
            }
        }
        if(i != n-1){
            cout << ";";
        }

    }

    cout << "]";
}

float summing (float m1[n][m], float m2[n][m],float ms[n][m]){


    for (int i=0;i<n;i++){

        for (int j=0;j<m;j++){

            ms[i][j] = m1[i][j] + m2[i][j] ;
        }

    }

    return 0 ;
}

float mult (float m1[n][m], float m2[n][m],float ms[n][m]){


    for (int i=0;i<n;i++){

        for (int j=0;j<m;j++){

            ms[i][j] = m1[i][j] * m2[i][j] ;
        }

    }

    return 0 ;
}

float subbing (float m1[n][m], float m2[n][m],float ms[n][m]){


    for (int i=0;i<n;i++){

        for (int j=0;j<m;j++){

            ms[i][j] = m1[i][j] - m2[i][j] ;
        }

    }

    return 0 ;
}

void functionchoosing (){

    getline(cin,str1);
    getline(cin,x);
    if (x == "+" ){
        getline(cin,str2);
        cutter(str1);
        splitter(str1,matrix1);
        cutter(str2);
        splitter(str2,matrix2);
        summing(matrix1,matrix2,matrixsum);
        showmatrix(matrixsum);

    }
    else if(x == "-"){

        getline(cin,str2);
        cutter(str1);
        splitter(str1,matrix1);
        cutter(str2);
        splitter(str2,matrix2);
        subbing(matrix1,matrix2,matrixsum);
        showmatrix(matrixsum);

    }
    else if(x== "*"){

        getline(cin,str2);
        cutter(str1);
        splitter(str1,matrix1);
        cutter(str2);
        splitter(str2,matrix2);
        mult(matrix1,matrix2,matrixsum);
        showmatrix(matrixsum);

    }


}



int main()
{
    functionchoosing();



    return 0;
}
