import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
solution(reader);
}
/**
* 模拟法
* 生产者消费者模型
*
* @param reader
* @throws IOException
*/
private static void solution(BufferedReader reader) throws IOException{
String[] line = reader.readLine().split(" ");
// PM序号
int pmSeq = Integer.parseInt(line[0]);
// 程序员个数
int programmerNum = Integer.parseInt(line[1]);
// idea个数
int ideaNum = Integer.parseInt(line[2]);
// 该程序员还需多长时间完成任务
int[] programmers = new int[programmerNum];
HashMap<Integer, Idea> map = new HashMap<>();
// 生产任务
PriorityQueue<Idea> produceQ = new PriorityQueue<>(Comparator.comparingInt(o -> o.submit));
// 待完成任务
PriorityQueue<Idea> taskQ = new PriorityQueue<>((o1, o2) -> {
if(o1.priority != o2.priority){
return o1.priority-o2.priority;
}else{
if(o1.duration != o2.duration){
return o1.duration-o2.duration;
}else{
return o1.submit-o2.submit;
}
}
});
// 任务生产
int[] ideaLine;
for(int i=0; i<ideaNum; i++){
ideaLine = Arrays.stream(reader.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
Idea idea = new Idea(i, ideaLine[1], ideaLine[2], ideaLine[3]);
map.put(i, idea);
produceQ.add(idea);
}
// 当前时间
int curr = 0;
while ((!taskQ.isEmpty()) || (!produceQ.isEmpty())) {
// 任务在当前时间点 提交
while ((!produceQ.isEmpty()) && produceQ.peek().submit == curr) {
taskQ.offer(produceQ.poll());
}
// 程序员 工作或选任务
for(int i=0; i<programmerNum; i++){
// 该程序员处于 工作状态
if(programmers[i] > 0){
// 工作1秒 任务所需时间减1秒
programmers[i]--;
}
// 该程序员处于 空闲状态
else{
// 任务队列有任务
if(!taskQ.isEmpty()){
Idea idea = taskQ.poll();
// 计算完成的时间点
idea.complete = curr + idea.duration;
// 该程序员完成该任务所需的时间 减去当前这1秒
programmers[i] = idea.duration - 1;
}
}
}
curr++;
}
for(int i=0; i<ideaNum; i++){
System.out.println(map.get(i).complete);
}
}
private static class Idea {
// 不是pm的编号
int id;
// 提交时间
int submit;
// 优先级
int priority;
// 所需时间
int duration;
// 完成时间
int complete;
public Idea(int id, int submit, int priority, int duration){
this.id = id;
this.submit = submit;
this.priority = priority;
this.duration = duration;
this.complete = -1;
}
}
}