/*
#include<stdio.h>
#define size 200
int stack[size];
int top=0;
void push(int data)
{
if(top==size)
return;
stack[top++]=data;
}
int pop()
{
if(top==0)
return;
return stack[--top];
}
int main()
{
int i,n,p,q,t=0;
char str[201]= {},tmp;
gets(str);
for(i=0; i<strlen(str); i++)
{
tmp=str[i];
if('0'<=tmp && tmp<='9')
{
t=t*10+tmp-48;
if(str[i+1]==' ')
{
push(t);
t=0;
}
}
else if( tmp=='+')
{
p = pop();
q = pop();
push(q+p);
}
else if( tmp=='*')
{
p=pop();
q=pop();
push(q*p);
}
else if( tmp=='-')
{
p=pop();
q=pop();
push(q-p);
}
}
printf("%d",pop());
return 0;
}
*/
/*
#include<stdio.h>
#define size 5;
int queue[size];
int front=0,rear=0;
void enq(int data)
{
if(rear==size)
return;
queue[rear]=data;
rear++;
}
int deq()
{
if(front==rear)
return 0 ;
return queue[front++];
}
int main()
{
}
//circular queue
#include<stdio.h>
#define size 5;
int queue [size];
int front=0,rear=0;
void enq(int data)
{
if((rear+1)%size==front)
return ;
rear = (rear+1)%size;
queue[rear]=data;
}
int deg()
{
if(front==rear)
{
return;
}
front=(front+1)%size;
return queue[front];
}
int main()
{
}
////////////////
*/
/*
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
if(n>26)
{
printf("%c",((n-1)/26-1)%26+65);
}
printf("%c",(n-1)%26+65);
return 0;
}
*/
#include<stdio.h>
int main()
{
int h,m,s,ct;
scanf("%d %d %d\n%d",&h,&m,&s,&ct);
h=(h+(m+s)/60)%24;
m=(m+(s+ct)/60)%24;
s=(s+(h+m+ct)/60);
ct=ct+(h+m+ct);
printf("%d %d %d")
}