#include<stdio.h>
#define MAX 100
int dfs_row_sum(int arr[], int n, int index){
    if(index == n)
        return 0;
    return arr[index] + dfs_row_sum(arr, n, index + 1);
}
void swap_rows(int a[MAX][MAX], int i, int j, int n){
    for(int k = 0; k < n; k++){
        int temp = a[i][k];
        a[i][k] = a[j][k];
        a[j][k] = temp;
    }
}
int main(){
    int m, n;
    if(scanf("%d %d", &m, &n) != 2){
        printf("Invalid input");
        return 0;
    }
    if(m <= 0 || n <= 0 || m > 100 || n > 100){
        printf("Invalid input");
        return 0;
    }
    int matrix[MAX][MAX];
    for(int i = 0; i< m; i++){
        for(int j = 0; j < n; j++){
            if(scanf("%d", &matrix[i][j]) != 1 || matrix[i][j] < -1000 || matrix[i][j] > 1000){
                printf("Invalid input");
                return 0;
            }
        }
    }
    int sum[MAX];
    for(int i = 0; i < m; i++)
        sum[i] = dfs_row_sum(matrix[i], n, 0);
    for(int i = 0; i < m - 1; i++){
        for(int j = 0; j < m - i - 1;j++){
            if(sum[j] > sum[j + 1]){
                    int temp = sum[j];
                    sum[j] = sum[j + 1];
                    sum[j + 1] = temp;
                    swap_rows(matrix, j, j + 1, n);
            }
        }
    }
    for(int i = 0; i < m; i++){
        for(int j = 0; j < n; j++){
            printf("%d", matrix[i][j] + " ");
        //     if(j != n - 1)
        //         printf(" ");
        // }
        if(i != m - 1)
            printf("\n");
    }
    return 0;
}