import java.util.*;
import java.io.*;
public class GFG {
      public static void main (String[] args) {
        Scanner sc=new Scanner(System.in);
        PrintWriter out=new PrintWriter(System.out);
            int n=sc.nextInt();
            int k=sc.nextInt();
            int[][] arr=new int[n][3];
            long sum=0;
            for(int i=0;i<n;i++)
            {arr[i][0]=sc.nextInt();
            arr[i][1]=sc.nextInt();
            arr[i][2]=sc.nextInt();}
            ArrayList<String> a=new ArrayList<String>();
            ArrayList<String> b=new ArrayList<String>();
            
            for(int i=0;i<n;i++)
            {
                if(arr[i][1]==1)
                a.add(""+arr[i][0]+" "+arr[i][2]);
                if(arr[i][2]==1)
                b.add(""+arr[i][0]+" "+arr[i][1]);
            }
            Collections.sort(a);
            Collections.sort(b);
            //System.out.println(a);
            if(a.size()<k||b.size()<k){out.println(-1);out.flush();}
            if(a.size()>=k&&b.size()>=k){
            int c=0,d=0;
            for(int i=0;i<a.size();i++)
            {
              if(c==k)
              break;
              String s1=a.get(i).substring(0,a.get(i).length()-2);
              String s2=a.get(i).substring(a.get(i).length()-1);
             if(Integer.valueOf(s2)==1){
             c++;d++;sum+=(long)Integer.valueOf(s1);}
            }
            for(int i=0;i<a.size();i++)
            {
              if(c==k)
              break;
              String s1=a.get(i).substring(0,a.get(i).length()-2);
              String s2=a.get(i).substring(a.get(i).length()-1);
             if(Integer.valueOf(s2)!=1){ c++;sum+=(long)Integer.valueOf(s1);}
            }
            for(int i=0;i<b.size();i++)
            {
              if(d==k)
              break;
              String s1=b.get(i).substring(0,b.get(i).length()-2);
              String s2=b.get(i).substring(b.get(i).length()-1);
             if(Integer.valueOf(s2)==0){
             d++;sum+=(long)Integer.valueOf(s1);}
            }
            long max=sum;c=0;sum=0;d=0;
            for(int i=0;i<b.size();i++)
            {
              if(c==k)
              break;
              String s1=b.get(i).substring(0,b.get(i).length()-2);
              String s2=b.get(i).substring(b.get(i).length()-1);
             if(Integer.valueOf(s2)==1){
             c++;d++;sum+=(long)Integer.valueOf(s1);}
            }
              for(int i=0;i<b.size();i++)
            {
              if(c==k)
              break;
              String s1=b.get(i).substring(0,b.get(i).length()-2);
              String s2=b.get(i).substring(b.get(i).length()-1);
             if(Integer.valueOf(s2)!=1){
             c++;sum+=(long)Integer.valueOf(s1);}
            }
            for(int i=0;i<a.size();i++)
            {
              if(d==k)
              break;
              String s1=a.get(i).substring(0,a.get(i).length()-2);
              String s2=a.get(i).substring(a.get(i).length()-1);
             if(Integer.valueOf(s2)!=1){ d++;sum+=(long)Integer.valueOf(s1);}
            }
            //System.out.println(sum);
          
            out.println((long)Math.max(sum,max));
            out.flush();
      }
}
}