import java.util.*;
import java.io.*;
public class Main
{
    static class Pair
    {
        int f,s;
        Pair(int f,int s)
        {
            this.f=f;
            this.s=s;
        }
    }
    static class comp implements Comparator<Pair>
    {
        public int compare(Pair p1,Pair p2)
        {
            return p1.s-p2.s;
        }
    }
    public static void main(String args[])throws Exception
    {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        PrintWriter pw=new PrintWriter(System.out);
        String str[]=br.readLine().split(" ");
        int n=Integer.parseInt(str[0]);
        int m=Integer.parseInt(str[1]);
        int k=Integer.parseInt(str[2]);
        int arr[][]=new int[n][3];
        for(int i=0;i<n;i++)
        {
            str=br.readLine().split(" ");
            arr[i][0]=Integer.parseInt(str[0]);
            arr[i][1]=Integer.parseInt(str[1]);
            arr[i][2]=Integer.parseInt(str[2]);
        }
        int ac=0,bc=0;
        for(int i=0;i<n;i++)
        {
            if(arr[i][1]==1)
            ac++;
            if(arr[i][2]==1)
            bc++;
        }
        if(ac<k||bc<k)
        pw.println(-1);
        else
        {
            ArrayList<Pair> ab=new ArrayList<>();
            ArrayList<Pair> a=new ArrayList<>();
            ArrayList<Pair> b=new ArrayList<>();
            ArrayList<Pair> c=new ArrayList<>();
            for(int i=0;i<n;i++)
            {
                if(arr[i][1]==1&&arr[i][2]==1)
                ab.add(new Pair(i+1,arr[i][0]));
                else if(arr[i][1]==1)
                a.add(new Pair(i+1,arr[i][0]));
                else if(arr[i][2]==1)
                b.add(new Pair(i+1,arr[i][0]));
                else
                c.add(new Pair(i+1,arr[i][0]));
            }
            Collections.sort(ab,new comp());
            Collections.sort(b,new comp());
            Collections.sort(a,new comp());
            Collections.sort(c,new comp());
            ArrayList<Integer> books=new ArrayList<>();
            long ans=0;
            ac=bc=k;
            if(a.size()==0||b.size()==0)
            {
                for(int j=0;j<Math.min(m,k);j++)
                {
                    ans=ans+ab.get(j).s;
                    books.add(ab.get(j).f);
                    ac--;
                    bc--;
                }
                m-=k;
                if(m>0)
                {
                    ArrayList<Pair> nw=new ArrayList<>();
                    for(int j=k;j<ab.size();j++)
                    nw.add(ab.get(j));
                    for(int i=0;i<a.size();i++)
                    nw.add(a.get(i));
                    for(int i=0;i<b.size();i++)
                    nw.add(b.get(i));
                    for(int i=0;i<c.size();i++)
                    nw.add(c.get(i));
                    Collections.sort(nw,new comp());
                    for(int i=0;i<m;i++)
                    {
                        ans=ans+nw.get(i).s;
                        books.add(nw.get(i).f);
                    }
                }
            }
            else
            {
                ac=k;
                bc=k;
                int i=0,j=0,p=0;
                while(i<ab.size()&&j<a.size()&&p<b.size()&&ac>0&&bc>0&&m>0)
                {
                    if(ab.get(i).s<=a.get(j).s+b.get(p).s||m==1)
                    {
                        ans=ans+ab.get(i).s;
                        books.add(ab.get(i).f);
                        i++;
                        m--;
                    }
                    else if(m>1)
                    {
                        ans=ans+a.get(j).s+b.get(p).s;
                        books.add(a.get(j).f);
                        books.add(b.get(p).f);
                        j++;
                        p++;
                        m-=2;
                    }
                    ac--;
                    bc--;
                }
                if(ac>0||bc>0)
                {
                    while(j<a.size()&&p<b.size()&&ac>0&&bc>0&&m>1)
                    {
                        ac--;
                        bc--;
                        ans=ans+a.get(j).s+b.get(p).s;
                        books.add(a.get(j).f);
                        books.add(b.get(p).f);
                        j++;
                        p++;
                        m-=2;
                    }
                    while(i<ab.size()&&ac>0&&bc>0&&m>0)
                    {
                        ac--;
                        bc--;
                        ans=ans+ab.get(i).s;
                        books.add(ab.get(i).f);
                        i++;
                        m--;
                    }
                }
                if(m>0)
                {
                    
                    ArrayList<Pair> nw=new ArrayList<>();
                    for(;i<ab.size();i++)
                    nw.add(ab.get(i));
                    for(;j<a.size();j++)
                    nw.add(a.get(j));
                    for(;p<b.size();p++)
                    nw.add(b.get(p));
                    for(i=0;i<c.size();i++)
                    nw.add(c.get(i));
                    Collections.sort(nw,new comp());
                    for(i=0;i<m;i++)
                    {
                        ans=ans+nw.get(i).s;
                        books.add(nw.get(i).f);
                        if(arr[nw.get(i).f-1][1]==1)
                        ac--;
                        if(arr[nw.get(i).f-1][2]==1)
                        bc--;
                    }
                }
            }
            if(ac<=0&&bc<=0)
            {
                pw.println(ans);
                for(int i=0;i<books.size();i++)
                pw.print(books.get(i)+" ");
            }
            else
            pw.println(-1);
        }
        pw.flush();
        pw.close();
    }
}