#include <stdio.h>
#include <stdlib.h>

// write your code here......
struct time//时间结构体,包含时、分、秒
{
    int hour;
    int minute;
    int second;
};
struct t//存放每个“t秒”
{
    int at;//after t seconds
};
void after(struct time* p, int n, struct t* arr )//该函数用来计算每次经过t秒后的时间并输出
{
  //定义三个变量存放每次循环后的时、分、秒,做为下次循环的初始时间
    int hour =0;
    int minute = 0;
    int second = 0;

    for(int i = 0; i < n; i++)
    {
        if(arr[i].at >= 0 && arr[i].at < 60)//当t在0-60秒之间
        {
            p[i].hour = hour;//当前“时”等于上一次循环后的“时”
            p[i].minute = minute;//当前“分”等于上一次循环后的“分”
            p[i].second = arr[i].at + second;//当前“秒”等于上一次循环后的“秒”+新增的“t秒”
            
        }
        if(arr[i].at >= 60 && arr[i].at < 3600)//当t在60-3600之间
        {
		  //计算原理同上
            p[i].hour = hour;
            p[i].minute = arr[i].at / 60 + minute;
            p[i].second = arr[i].at % 60 + second; 
         }
        if(arr[i].at >= 3600)
        {
		  //计算原理同上
            int temp=arr[i].at / 3600;//定义一个临时变量temp,存放本次t秒中的“时”部分
            p[i].hour = arr[i].at / 3600 + hour;
            p[i].minute = (arr[i].at - temp * 3600) / 60 + minute;//t秒减去“时”部分后,用剩下的时间即可																		求得新增的“分”
            p[i].second = arr[i].at % 60 +second;
        }
        if(p[i].second >= 60)//如果“time”中存放的“秒”大于等于60则进位
        {
            p[i].minute += p[i].second / 60;
            p[i].second = p[i].second % 60;
        }
        if(p[i].minute >= 60)//如果“time”中存放的“分”大于等于60则进位
        {
            p[i].hour += p[i].minute / 60;
            p[i].minute = p[i].minute % 60;
        }
	  //将计算后的结果重新赋值给变量“时”、“分”、“秒”
        hour = p[i].hour;
        minute = p[i].minute;
        second = p[i].second;
    }
  //打印每次经过t秒后的时间
    for(int j = 0; j < n; j++)
    {
        printf("%d %d %d\n",p[j].hour, p[j].minute, p[j].second);
    }
}

int main() {

    int n;
    scanf("%d",&n);
  
    struct time* p=(struct time*)malloc(n*sizeof(struct time));//动态分配内存以创建结构体数组
    struct t* q=(struct t*)malloc(n*sizeof(struct t));
  
    for (int i = 0; i < n; i++) //依次输入时间t
	{
        scanf("%d",&q[i].at);
    }

    // write your code here......
    after(p,  n, q);//调用函数完成计算

    free(p);//释放内存
  	free(q);
    return 0;
}