#include <stdio.h>
#include<stdlib.h>

int main() {
    int n, m;
    scanf("%d %d", &n, &m); //动态输入二维数组的行数列数
    int** a = (int**)malloc(n * sizeof(int*)); //定义一个二维数组并为二维数组的行进行动态分配内存地址
    long long sum = 0;
    for(int i = 0; i < n; i++)
    {
        a[i] = (int*)malloc(m * sizeof(int));//为数组的每一列动态分配内存地址
    }

    for(int j = 0; j < n; j++)//双for循环遍历数组每一个元素并求和
    {
        for(int k = 0; k < m; k++)
        {
            scanf("%d",&a[j][k]);
            sum = sum + a[j][k];
        }
    }
    printf("%lld", sum);
    return 0;
  //注:此代码未进行地址释放,此为大错
}