#include <stdio.h>
#include <stdlib.h>

#define MAX_M 50
#define MAX_N 50

// Comparison function for qsort
int cmp(const void* a, const void* b) {
    return ((int)a) - ((int)b);
}

int main() {
    int m, n;
    if (scanf("%d %d", &m, &n) != 2 || m < 1 || m > MAX_M || n < 1 || n > MAX_N) {
        printf("Invalid input");
        return 0;
    }
    int grid[MAX_M][MAX_N];

    // Input grid and validation
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            if (scanf("%d", &grid[i][j]) != 1 || grid[i][j] < 1 || grid[i][j] > 100) {
                printf("Invalid input");
                return 0;
            }
        }
    }

    // Sort each row
    for (int i = 0; i < m; i++) {
        qsort(grid[i], n, sizeof(int), cmp);
    }

    int efficiency = 0;

    // For every column, find the max value and add to efficiency
    for (int j = 0; j < n; j++) {
        int max_val = grid[j];
        for (int i = 1; i < m; i++) {
            if (grid[i][j] > max_val) {
                max_val = grid[i][j];
            }
        }
        efficiency += max_val;
    }

    printf("%d", efficiency);
    return 0;
}