import java.util.*;
import java.io.*;
import static java.lang.System.*;

class FastScanner {
  private final InputStream in = System.in;
  private final byte[] buffer = new byte[1024];
  private int ptr = 0;
  private int buflen = 0;
  private boolean hasNextByte() {
      if (ptr < buflen) {
          return true;
      }else{
          ptr = 0;
          try {
              buflen = in.read(buffer);
          } catch (IOException e) {
              e.printStackTrace();
          }
          if (buflen <= 0) {
              return false;
          }
      }
      return true;
  }
  private int readByte() { if (hasNextByte()) return buffer[ptr++]; else return -1;}
  private static boolean isPrintableChar(int c) { return 33 <= c && c <= 126;}
  public boolean hasNext() { while(hasNextByte() && !isPrintableChar(buffer[ptr])) ptr++; return hasNextByte();}
  public String next() {
      if (!hasNext()) throw new NoSuchElementException();
      StringBuilder sb = new StringBuilder();
      int b = readByte();
      while(isPrintableChar(b)) {
          sb.appendCodePoint(b);
          b = readByte();
      }
      return sb.toString();
  }
  public long nextLong() {
      if (!hasNext()) throw new NoSuchElementException();
      long n = 0;
      boolean minus = false;
      int b = readByte();
      if (b == '-') {
          minus = true;
          b = readByte();
      }
      if (b < '0' || '9' < b) {
          throw new NumberFormatException();
      }
      while(true){
          if ('0' <= b && b <= '9') {
              n *= 10;
              n += b - '0';
          }else if(b == -1 || !isPrintableChar(b)){
              return minus ? -n : n;
          }else{
              throw new NumberFormatException();
          }
          b = readByte();
      }
  }
  public int nextInt() {
      long nl = nextLong();
      if (nl < Integer.MIN_VALUE || nl > Integer.MAX_VALUE) throw new NumberFormatException();
      return (int) nl;
  }
  public double nextDouble() { return Double.parseDouble(next());}
}

class Cake implements Comparable<Cake>{
  public long x;
  public long y;
  public long z;
  public long value;
  
  public int compareTo(Cake obj){
    if(obj.value < this.value) return -1;
    else if(obj.value > this.value) return 1;
    else return 0;
  }
}
  
class Main {
  public static final int MOD = 1000000007;
  public static final int INF = 1000000000;
  public static void main(String[] args) {
    FastScanner sc = new FastScanner();
    int N = sc.nextInt();
    int M = sc.nextInt();
    Cake cake[] = new Cake[N];
    for(int i=0; i<N; i++){
      cake[i] = new Cake();
      cake[i].x = sc.nextLong();
      cake[i].y = sc.nextLong();
      cake[i].z = sc.nextLong();
    }
    long ans = 0;
    for(int i=0; i<(1<<3); i++){
      for(int j=0; j<N; j++){
        cake[j].value = 0;
        if((i>>0 & 1) == 1) cake[j].value += cake[j].x;
        else cake[j].value -= cake[j].x;
        if((i>>1 & 1) == 1) cake[j].value += cake[j].y;
        else cake[j].value -= cake[j].y;
        if((i>>2 & 1) == 1) cake[j].value += cake[j].z;
        else cake[j].value -= cake[j].z;
      }
      Arrays.sort(cake);
      long tmp = 0;
      for(int j=0; j<M; j++){
        tmp += cake[j].value;
      }
      ans = Math.max(ans, tmp);
    }
    out.println(ans);
  }

  public static int gcd(int a, int b){
    if(b == 0) return a;
    return gcd(b, a%b);
  }
}

Measured memory_bytes: 23856