#include <iostream>
#include <vector>
using namespace std;

int main() {
    int rows, cols;

    // گرفتن اندازه ماتریس از کاربر
    cout << "Enter number of rows: ";
    cin >> rows;
    cout << "Enter number of columns: ";
    cin >> cols;

    vector<vector<int>> matrix1(rows, vector<int>(cols));
    vector<vector<int>> matrix2(rows, vector<int>(cols));
    vector<vector<int>> sumMatrix(rows, vector<int>(cols));
    vector<vector<int>> productMatrix(rows, vector<int>(cols, 0));

    // دریافت اولین ماتریس از کاربر
    cout << "Enter elements of first matrix:" << endl;
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            cout << "Enter element at [" << i << "][" << j << "]: ";
            cin >> matrix1[i][j];
        }
    }

    // دریافت دومین ماتریس از کاربر
    cout << "Enter elements of second matrix:" << endl;
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            cout << "Enter element at [" << i << "][" << j << "]: ";
            cin >> matrix2[i][j];
        }
    }

    // محاسبه ماتریس جمع
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            sumMatrix[i][j] = matrix1[i][j] + matrix2[i][j];
        }
    }

    // محاسبه ماتریس ضرب
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            for (int k = 0; k < cols; k++) {
                productMatrix[i][j] += matrix1[i][k] * matrix2[k][j];
            }
        }
    }

    // چاپ ماتریس جمع
    cout << "\nMatrix Sum:" << endl;
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            cout << sumMatrix[i][j] << " ";
        }
        cout << endl;
    }

    // چاپ ماتریس ضرب
    cout << "\nMatrix Product:" << endl;
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            cout << productMatrix[i][j] << " ";
        }
        cout << endl;
    }

    return 0;
}