import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Scanner;

public class Main {
    
    static final long NANOS_PER_SECOND = 1000_000_000L;
    static final long NANOS_PER_MINUTE = NANOS_PER_SECOND * 60;
    static final long NANOS_PER_HOUR = NANOS_PER_MINUTE * 60;
    static final long NANOS_PER_WORKED_DAY = NANOS_PER_HOUR * 8;
    static final long NANOS_PER_HALF_DAY = NANOS_PER_HOUR * 12;
    static final long NANOS_PER_DAY = NANOS_PER_HOUR * 24;

    public static void main(String[] args) {
        try (Scanner sc = new Scanner(System.in)) {
            sc.useDelimiter("(?i)([ :]|(?<=\\d)(?=[ap]))");

            // Read input
            long checkIn = sc.nextInt() * NANOS_PER_HOUR + sc.nextInt() * NANOS_PER_MINUTE;
            if (!sc.hasNextDouble()) {
                if (sc.next().equalsIgnoreCase("pm")) {
                    checkIn += NANOS_PER_HALF_DAY;
                }
            }
            long total = (long) (sc.nextDouble() * NANOS_PER_HOUR);
            
            // Do some calculations
            long required = NANOS_PER_WORKED_DAY - total % NANOS_PER_WORKED_DAY;
            long now = ZonedDateTime.now(ZoneId.of("America/Mexico_City")).toLocalTime().toNanoOfDay();
            long elapsed = total + (checkIn > now
                                  ? NANOS_PER_DAY - checkIn + now
                                  : now - checkIn);
            
            // Produce output
            System.out.printf("Tiempo transcurrido: %02dh%02dm%02fs%n",
                    elapsed / NANOS_PER_HOUR,
                    elapsed % NANOS_PER_HOUR / NANOS_PER_MINUTE,
                    elapsed % NANOS_PER_MINUTE / (double) NANOS_PER_SECOND);
            System.out.printf("Salida a las: %02d:%02d%n",
                    (checkIn + required) / NANOS_PER_HOUR,
                    (checkIn + required) % NANOS_PER_HOUR / NANOS_PER_MINUTE);
        }
    }

}