//#include <bits/stdc++.h>
//
//using namespace std;
//
//int main() {
//    long long d,n;
//    while(cin >> d >> n) {
//        if(d == 0) {
//            if(n == 100) n++;
//                cout << n  << endl;
//
//            continue;
//        }
//        long long c;
//        if(d == 1)
//            c = 100;
//        else c = 10000;
//        if(n == 100) n++;
//        cout << n * c << endl;
//    }
//    return 0;
//}






//#include <bits/stdc++.h>
//
//using namespace std;
//
//const int maxn = 1e5 + 100;
//int a[maxn];
//int main() {
//    int n;
//     while(cin >> n){
//        int ans = 0;
//        for(int i = 1;i <= n;i++) cin >> a[i];
//        for(int i = 1;i <= n;i++){
//            while(a[i] % 2 == 0) ans++,a[i] /= 2;
//        }
//        cout << ans << endl;
//     }
//    return 0;
//}
//


#include <bits/stdc++.h>

using namespace std;

const int maxn = 2000;
struct node {
    long long a,b,c,s;
} g[maxn];
int n,m;
long long s[maxn];
long long calc(int flag1,int flag2,int flag3,int i ) {
    long long ans = 0;
    if(flag1) ans += g[i].a;
    else ans -= g[i].a;
    if(flag2) ans += g[i].b;
    else ans -= g[i].b;
    if(flag3) ans += g[i].c;
    else ans -= g[i].c;
    return ans;
}

bool cmp(long long a,long long b) {
    return a > b;
}

long long getMax(int a,int b,int c) {
    for(int i = 1; i <= n; i++)
        s[i] = calc(a,b,c,i);
    sort(s + 1,s + 1 + n,cmp);
    long long sum = 0;
    for(int i = 1; i <= m; i++)
        sum += s[i];
//        cout << sum << endl;
    return sum;
}
int main() {
    while(cin >> n >> m) {
        memset(s,0,sizeof(s));
        long long ans = 0;
        for(int i = 1; i <= n; i++) cin >> g[i].a >> g[i].b >> g[i].c,g[i].s = g[i].a + g[i].b + g[i].c;
        ans = max(ans,getMax(1,1,1));
        ans = max(ans,getMax(1,1,0));
        ans = max(ans,getMax(1,0,1));
        ans = max(ans,getMax(0,1,1));
        ans = max(ans,getMax(1,0,0));
        ans = max(ans,getMax(0,0,1));
        ans = max(ans,getMax(0,1,0));
        ans = max(ans,getMax(0,0,0));
        cout << ans << endl;
    }
    return 0;
}



//#include <bits/stdc++.h>
//
//using namespace std;
//const int maxn = 1e6 + 100;
//long long a[maxn],b[maxn];
//long long Max = 0;
//long long c,n;
//int main() {
//    int t;
//    scanf("%d",&t);
//    while(t--) {
//        scanf("%lld%lld",&n,&c);
//        Max = 0;
//        long long sum = 0;
//        int id = 1;
//        long long Min = 1e18;
//        memset(s1,0,sizeof(s1));
//        memset(s2,0,sizeof(s2));
//        for(int i = 1; i <= n; i++)  scanf("%lld",&a[i]),Min = min(a[i],Min);
//        for(int i = 1; i <= n; i++)  scanf("%lld",&b[i]),sum += a[i] - b[i], s2[i] = a[i] - b[i] + s[i];;
//        for(int i = n; i >= 1; i--)
//            s1[i] = a[i] - b[i] + s[i + 1];
//
//        if(sum + c < 0) printf("-1\n");s
//        else {
//            if(n == 1) {
//                if(c >= a[1]) {
//                    printf("1\n");
//                } else printf("-1\n");
//                continue;
//            }
//            for(int i = 1; i <= n; i++) {
//                if(c + a[i] >= 0 && c + a[i] - b[i] >= 0 && sum + c + a[i] >= 0) {
//                    id = i;
//                    break;
//                }
//            }
//            printf("%d\n",id);
//        }
//    }
//}


Measured memory_bytes: 256