void increment_datetime(char* stamp)
{
  char limit, roll;
  if (stamp[13] < '9') { ++stamp[13]; return; } stamp[13] = '0';
  if (stamp[12] < '5') { ++stamp[12]; return; } stamp[12] = '0';
  if (stamp[11] < '9') { ++stamp[11]; return; } stamp[11] = '0';
  if (stamp[10] < '5') { ++stamp[10]; return; } stamp[10] = '0';
  if (stamp[ 9] < ((stamp[8] == '2') ? '3' : '9'))
                       { ++stamp[ 9]; return; } stamp[ 9] = '0';
  if (stamp[ 8] < '2') { ++stamp[ 8]; return; } stamp[ 8] = '0';
  limit = "0181010110101"[(stamp[4] * 10 + stamp[5]) & 0xf];
  roll = (stamp[6] == '3' - (limit == '8'));
  if (stamp[7] < '9' && (stamp[7] != limit || !roll ||
       (limit == '8' && !(((stamp[2] << 1) ^ stamp[3]) & 3) &&
        ((stamp[2] | stamp[3]) != '0' || !(((stamp[0] << 1) ^ stamp[1]) & 3)))))
                       { ++stamp[ 7]; return; } stamp[ 7] = '0' + roll;
  if (!roll)           { ++stamp[ 6]; return; } stamp[ 6] = '0';
  roll = (stamp[4] == '1');
  if (stamp[ 5] < (roll ? '2' : '9'))
                       { ++stamp[ 5]; return; } stamp[ 5] = '0' + roll;
  if (stamp[ 4] < '1') { ++stamp[ 4]; return; } stamp[ 4] = '0';
  if (stamp[ 3] < '9') { ++stamp[ 3]; return; } stamp[ 3] = '0';
  if (stamp[ 2] < '9') { ++stamp[ 2]; return; } stamp[ 2] = '0';
  if (stamp[ 1] < '9') { ++stamp[ 1]; return; } stamp[ 1] = '0';
  if (stamp[ 0] < '9') { ++stamp[ 0]; return; } stamp[ 0] = '0';
}

#include <iostream>
#include <string>

int main()
{
  char stamp[20];
  while (cin.getline(stamp, sizeof(stamp))) {
    increment_datetime(stamp);
    std::cout << stamp << std::endl;
  }
  return 0;
}
