A recently found Ancient Prophesy is believed to contain the exact Apocalypse date. The prophesy is a string that only consists of digits and characters "-".

We'll say that some date is mentioned in the Prophesy if there is a substring in the Prophesy that is the date's record in the format "dd-mm-yyyy". We'll say that the number of the date's occurrences is the number of such substrings in the Prophesy. For example, the Prophesy "0012-10-2012-10-2012" mentions date 12-10-2012 twice (first time as "0012-10-2012-10-2012", second time as "0012-10-2012-10-2012").

The date of the Apocalypse is such correct date that the number of times it is mentioned in the Prophesy is strictly larger than that of any other correct date.

A date is correct if the year lies in the range from 2013 to 2015, the month is from 1 to 12, and the number of the day is strictly more than a zero and doesn't exceed the number of days in the current month. Note that a date is written in the format "dd-mm-yyyy", that means that leading zeroes may be added to the numbers of the months or days if needed. In other words, date "1-1-2013" isn't recorded in the format "dd-mm-yyyy", and date "01-01-2013" is recorded in it.

Notice, that any year between 2013 and 2015 is not a leap year.

Input

The first line contains the Prophesy: a non-empty string that only consists of digits and characters "-". The length of the Prophesy doesn't exceed 105 characters.

Output

In a single line print the date of the Apocalypse. It is guaranteed that such date exists and is unique.

Examples

Input

777-444---21-12-2013-12-2013-12-2013---444-777


Output

13-12-2013
#include <bits/stdc++.h>
using namespace std;
long long int checkyear(char ch1, char ch2, char ch3, char ch4) {
  if (ch1 == '2' && ch2 == '0' && ch3 == '1' &&
      (ch4 == '3' || ch4 == '4' || ch4 == '5'))
    return 1;
  else
    return 0;
}
long long int checkmonth(char ch1, char ch2) {
  if (ch1 == '0' && ch2 == '2')
    return 1;
  else if (ch1 == '0' &&
           (ch2 == '1' || ch2 == '3' || ch2 == '5' || ch2 == '7' || ch2 == '8'))
    return 3;
  else if ((ch1 == '1') && (ch2 == '0' || ch2 == '2'))
    return 3;
  else if ((ch1 == '0') && (ch2 == '4' || ch2 == '6' || ch2 == '9'))
    return 2;
  else if (ch1 == '1' && ch2 == '1')
    return 2;
  else
    return 0;
}
long long int checkday(char ch1, char ch2, long long int month) {
  if (month == 1) {
    if ((ch1 == '0') &&
        (ch2 == '1' || ch2 == '2' || ch2 == '3' || ch2 == '4' || ch2 == '5' ||
         ch2 == '6' || ch2 == '7' || ch2 == '8' || ch2 == '9'))
      return 1;
    else if ((ch1 == '1') &&
             (ch2 == '0' || ch2 == '1' || ch2 == '2' || ch2 == '3' ||
              ch2 == '4' || ch2 == '5' || ch2 == '6' || ch2 == '7' ||
              ch2 == '8' || ch2 == '9'))
      return 1;
    else if ((ch1 == '2') && (ch2 == '0' || ch2 == '1' || ch2 == '2' ||
                              ch2 == '3' || ch2 == '4' || ch2 == '5' ||
                              ch2 == '6' || ch2 == '7' || ch2 == '8'))
      return 1;
    else
      return 0;
  } else if (month == 2) {
    if ((ch1 == '0') &&
        (ch2 == '1' || ch2 == '2' || ch2 == '3' || ch2 == '4' || ch2 == '5' ||
         ch2 == '6' || ch2 == '7' || ch2 == '8' || ch2 == '9')) {
      return 1;
    } else if ((ch1 == '1') &&
               (ch2 == '0' || ch2 == '1' || ch2 == '2' || ch2 == '3' ||
                ch2 == '4' || ch2 == '5' || ch2 == '6' || ch2 == '7' ||
                ch2 == '8' || ch2 == '9')) {
      return 1;
    } else if ((ch1 == '2') &&
               (ch2 == '0' || ch2 == '1' || ch2 == '2' || ch2 == '3' ||
                ch2 == '4' || ch2 == '5' || ch2 == '6' || ch2 == '7' ||
                ch2 == '8' || ch2 == '9')) {
      return 1;
    } else if ((ch1 == '3') && (ch2 == '0')) {
      return 1;
    } else
      return 0;
  } else if (month == 3) {
    if ((ch1 == '0') &&
        (ch2 == '1' || ch2 == '2' || ch2 == '3' || ch2 == '4' || ch2 == '5' ||
         ch2 == '6' || ch2 == '7' || ch2 == '8' || ch2 == '9')) {
      return 1;
    } else if ((ch1 == '1') &&
               (ch2 == '0' || ch2 == '1' || ch2 == '2' || ch2 == '3' ||
                ch2 == '4' || ch2 == '5' || ch2 == '6' || ch2 == '7' ||
                ch2 == '8' || ch2 == '9')) {
      return 1;
    } else if ((ch1 == '2') &&
               (ch2 == '0' || ch2 == '1' || ch2 == '2' || ch2 == '3' ||
                ch2 == '4' || ch2 == '5' || ch2 == '6' || ch2 == '7' ||
                ch2 == '8' || ch2 == '9')) {
      return 1;
    } else if ((ch1 == '3') && (ch2 == '0' || ch2 == '1')) {
      return 1;
    } else
      return 0;
  }
}
int main() {
  char a[100003], b[1000];
  string s;
  scanf("%s", a);
  map<string, long long int> m;
  map<string, long long int>::iterator it, pos;
  long long int len, i = 0, c, d, j = 0, year, month, day;
  len = strlen(a);
  for (i = 0; i <= (len - 10); i++) {
    j = 0;
    year = checkyear(a[i + 6], a[i + 7], a[i + 8], a[i + 9]);
    if (year) {
      month = checkmonth(a[i + 3], a[i + 4]);
      if (month) {
        day = checkday(a[i], a[i + 1], month);
        if (day && a[i + 2] == '-' && a[i + 5] == '-') {
          b[0] = a[i];
          b[1] = a[i + 1];
          b[2] = a[i + 2];
          b[3] = a[i + 3];
          b[4] = a[i + 4];
          b[5] = a[i + 5];
          b[6] = a[i + 6];
          b[7] = a[i + 7];
          b[8] = a[i + 8];
          b[9] = a[i + 9];
          b[10] = '\0';
          s = b;
          m[s]++;
        }
      }
    }
  }
  long long int max = 0;
  it = m.begin();
  for (; it != m.end(); it++) {
    if ((it->second) > max) {
      max = it->second;
      pos = it;
    }
  }
  cout << pos->first;
  return 0;
}
