100 1
1000000 100 1000
 5 3
1 4 10
2 2 5
3 1 6
 10 4
1 5 20
2 5 200
100 6 20
101 1 100
 5 3
1 3 4
4 3 4
6 4 1
 4 1
6 1 1
 8 6
1 3 20
4 2 1
6 6 5
9 1 1
15 3 6
21 8 8
 4 5
1 2 3
2 1 3
3 1 2
4 3 3
5 4 1
 8 4
1 3 2
2 3 100
10 6 20
11 5 20
 4 10
1 1 1
3 1 2
4 1 2
6 1 2
8 1 2
13 1 2
16 1 1
17 1 2
19 3 1
20 1 1
 5 3
1 4 4
4 2 2
5 5 2
 4 3
1 3 10
2 2 15
12 4 1
 5 4
1 1 4
2 4 4
5 2 20
11 5 2
 1 10
4 1 1
9 1 1
10 1 1
12 1 1
13 1 1
15 1 1
16 1 1
18 1 1
19 1 1
20 1 1

5050
 10
-1
5
 15
40
-1
1
 6
-1
10
 1
 6
9
-1
4
15
36
 3
3
4
-1
10
 6
15
-1
21
 1
1
2
1
1
1
1
1
6
1
 10
-1
15
 6
-1
10
 1
14
-1
15
 1
1
1
1
1
1
1
1
1
1

import java.util.*; 
    import java.math.*;
    import java.io.*;
    import java.text.DecimalFormat;
    import java.math.BigInteger;
    public class Main{
        //static int d=20;
        static long mod=1000000007 ;
        static HashMap<String,Double> hm=new HashMap<>(); 
        static ArrayList<ArrayList<Integer>> arr;
        static long[] dp1,dp2;
        static int[] a;
        static int[] vis,num;
        static long max;
        static int flag;
        public static void main(String[] args)  throws IOException {
            boolean online =false;
            String fileName = "C-large-practice";
            PrintWriter out; 
            if (online) {
                s.init(new FileInputStream(new File(fileName + ".in")));
                 out= new PrintWriter(new FileWriter(fileName + "out.txt"));
            }
             else {
                s.init(System.in);   
            
                out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
            }
            int n=s.ni();
            int q=s.ni();
            int[] t=new int[q];
            int[] k=new int[q];
            int[] d=new int[q];
            for(int i=0;i<q;i++){
                t[i]=s.ni();
                k[i]=s.ni();
                d[i]=s.ni();
            }
            int[] time=new int[n];
            int[] ans=new int[q];
            for(int i=0;i<q;i++){
                int sum=0;
                int sum2=0;

                for(int j=0;j<n;j++){
                    if(time[j]<=t[i]){
                        //time[j]=t[i]+d[i];
                        //sum+=j+1;
                        sum2++;
                    }
                }
                if(sum2>=k[i]){
                    sum2=0;
                    for(int j=0;j<n;j++){
                        if(time[j]<=t[i]){
                            time[j]=t[i]+d[i];
                            sum+=j+1;
                            sum2++;
                            if(sum2==k[i])
                                break;
                        }
                    }

                }
                else
                    sum=-1;
                ans[i]=sum;
            }
            for(int x:ans)
                out.println(x);
            out.close();

        }
        

        public static long find(long n,long k){
            if(n==2){
                if(k==1 || k==3)
                    return 1;
                else
                    return 2;
            }
            long t=pow2(2,n)-1;
            long z=(t+1)/2;
            if(k==z)
                return n;
            if(k<z)
                return find(n-1,k);
            else
                return find(n-1,k-z);
        }
        public static long pow2(long a,long b){
                long ans=1;
                while(b>0){
                    if(b%2==1)
                        ans=(a*ans);
                    a=(a*a);
                    b/=2;
                }
                return  ans;
        }
        public static double pow3(double a,long b){
                double ans=1;
                while(b>0){
                    if(b%2==1)
                        ans=(a*ans);
                    a=(a*a);
                    b/=2;
                }
                return  ans;
        }

         static class name implements Comparable<name> {
            int id,val;
            public name(int  x,int y){
                id=x;
                val=y;  
                
            }
            public int compareTo(name o){
               
                    return id-o.id;
            }
        }
        public static class s {
            static BufferedReader reader;
            static StringTokenizer tokenizer;
        
            /** call this method to initialize reader for InputStream */
            static void init(InputStream input) {
                reader = new BufferedReader(
                            new InputStreamReader(input) );
                tokenizer = new StringTokenizer("");
            }   
        
            /** get next word */
            static String ns() throws IOException {
                while ( ! tokenizer.hasMoreTokens() ) {
                    //TODO add check for eof if necessary
                    tokenizer = new StringTokenizer(
                        reader.readLine() );
                }
                return tokenizer.nextToken();
            }
        
            static int ni() throws IOException {
                return Integer.parseInt( ns() );
            }
        
            static double nd() throws IOException {
                return Double.parseDouble( ns() );
            }
            static long nl() throws IOException {
                return Long.parseLong( ns() );
            }
            
        }
    }