#include <iostream>

using namespace std;

int main(){
	int rovs, cols;
	// ввод размера матрицы пока размер не будет больше 0
	while (true){
		cout << "Input rovs of matrix: " << endl;
		cin >> rovs;

		cout << "Input cols of matrix: " << endl;
		cin >> cols;

		if ((rovs < 1) || (cols < 1)){
			cout << "The size of matrix can't be less than 1." << endl;
			cout << "-------------" << endl;
		}
		else {
			cout << "-------------" << endl;
			break;
		}
	}
	// инициализация и заполнение массива sum нулями для корректной работы памяти
	int *sum = new int [rovs];
	for (int i = 0; i < rovs; i++){
		sum[i] = 0;
	}
	// инициализация матрицы matrix
	int **matrix = new int *[rovs];
	for (int i = 0; i < rovs; i++){
		matrix[i] = new int [cols];
	}

	// ввод матрицы
	cout << "Input matrix's elements: " << endl;
    for (int i = 0; i < rovs; i++){
		for (int j = 0; j < cols; j++){
            cin >> matrix[i][j];
        }
		cout << endl;
	}

	cout << "-------------" << endl;
	// вывод матрицы
	for (int i = 0; i < rovs; i++){
		for (int j = 0; j < cols; j++){
			cout << matrix[i][j] << "\t";
        }
		cout << endl;
	}

	cout << "-------------" << endl;
	// заполнение массива sum и вывод результата
	for (int i = 0; i < rovs; i++){
		for (int j = 0; j < cols; j++){
			if (matrix[i][j] < 0){
				sum[i] = sum[i] + matrix[i][j];
			}
		}
		if (sum[i] < 0) {
			cout << "Sum of " << i+1 << " stroke is " << sum[i] << endl;
		}
		else {
			cout << "Sum of " << i+1 << " stroke doesn't exist." << endl;
		}
	}
	// очистка ОЗУ от указателей
	for (int i = 0; i < rovs; i++){
		delete[] matrix[i];
	}

	delete[] matrix;
	delete[] sum;
	
	return 0;
}