import java.io.*;
import java.util.*;

public class X {

	public static void main(String[] args) {
		FastScanner in=new FastScanner();
		PrintWriter out=new PrintWriter(System.out);
        solve(in,out);
		out.close();
	}
	
	static void solve(FastScanner in,PrintWriter out){
	    //	out.println(1);
		 int n=in.nextInt();
		 int k=in.nextInt();
		 int a[][]=new int[n][4];
		 	
		 for(int i=0;i<n;i++) {
		     a[i][0]=in.nextInt();  a[i][1]=in.nextInt();   a[i][2]=in.nextInt(); a[i][3]=i;
		 }
		 
		 Arrays.sort(a,new Comparator<int[]>(){
		     public int compare(int a[],int b[]){
		       return a[0]-b[0];     
		     }
		 });
		 	long as1=0,as2=0;
		 
		 	HashSet<Integer> h=new HashSet<Integer>();
		 ArrayList<Integer> ans=new ArrayList<Integer>();
		 long a1=0,a2=0;
		for(int i=0;i<n;i++){
		     if(a1>=k) break;
		   if(a[i][1]==1){ a1++; ans.add(a[i][0]);  h.add(a[i][3]); if(a[i][2]==1) a2++; }
		  
		}
				   	
	   for(int i=0;i<n;i++){
	        if(a2>=k) break;
	       if(h.contains(i)) continue;
		   if(a[i][2]==1){ a2++; ans.add(a[i][0]); }
		  
		}
		if(a2<k||a1<k) { out.println("-1"); return; }
		for(int i=0;i<ans.size();i++){
		  as1+=ans.get(i);
		   }

		   a1=0; a2=0; ans.clear(); h.clear();
		   for(int i=0;i<n;i++){
		        if(a2>=k) break;
		   if(a[i][2]==1){ a2++; ans.add(a[i][0]);  h.add(a[i][3]); if(a[i][1]==1) a1++; }
		  
		}
	   for(int i=0;i<n;i++){
	        if(a1>=k) break;
	       if(h.contains(i)) continue;
		   if(a[i][1]==1){ a1++; ans.add(a[i][0]); }
		  
		}
		if(a2<k||a1<k) { out.println("-1"); return; }
		for(int i=0;i<ans.size();i++){
		  as2+=ans.get(i);
		   }

		out.println(Math.max(as1,as2));
	}

	static class FastScanner {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st=new StringTokenizer("");
		String next() {
			while (!st.hasMoreTokens())
				try {
					st=new StringTokenizer(br.readLine());
				} catch (IOException e) {
					e.printStackTrace();
				}
			return st.nextToken();
		}
		
		int nextInt() {
			return Integer.parseInt(next());
		}
		int[] readArray(int n) {
			int[] a=new int[n];
			for (int i=0; i<n; i++) a[i]=nextInt();
			return a;
		}
		long nextLong() {
			return Long.parseLong(next());
		}
	}

	
}
