using System.Collections.Generic;
public static void Main()
int balloonCount, studentCount;
var studentsBlowingFuncs = new List<Func<int, int>>();
Console.ReadLine().Split(new[] { ' ' },
StringSplitOptions.RemoveEmptyEntries)
balloonCount = firstLine[0];
studentCount = firstLine[1];
for (int i = 0; i < studentCount; i++)
Console.ReadLine().Split(new[] { ' ' },
StringSplitOptions.RemoveEmptyEntries)
Func<int, int> fi = x => line[0] * x + line[2] * ((x - 1) / line[1]);
studentsBlowingFuncs.Add(fi);
int[] vals = new int[studentCount];
var valsWithFuns = vals.Zip(studentsBlowingFuncs, Tuple.Create);
for (int i = 0; i < balloonCount; i++)
var indexedReturns = valsWithFuns
.Select((val, idx) => Tuple.Create(idx, val.Item2(val.Item1 + 1)));
var minimum = indexedReturns.Aggregate((cur, min) => cur.Item2 > min.Item2 ? min : cur);
var total = studentsBlowingFuncs[last](vals[last]);
Console.WriteLine(total);