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
// 21:38
// 22:09
import java.util.*;
import java.util.regex.Pattern;

public class B {
	Scanner sc = new Scanner(System.in);
	Pattern pat = Pattern.compile("[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]");
	void doIt()
	{
		TreeMap<Date, Integer> rec = new TreeMap<Date, Integer>();
		String line = sc.nextLine();
		for(int i = 0; i <= line.length() - 10; i++) {
			String d = line.substring(i, i+10);
			if(pat.matcher(d).matches()) {
				Date cand = new Date(Integer.parseInt(d.substring(6)),
						Integer.parseInt(d.substring(3, 5)),
						Integer.parseInt(d.substring(0, 2)));
				if(cand.isValid()) {
					//System.out.println(d);
					if(rec.containsKey(cand)) rec.put(cand, rec.get(cand) + 1);
					else rec.put(cand, 1);
				}
			}
		}
		Date ans = null;
		int max_v = 0;
		for(Date d : rec.keySet()) {
			if(rec.get(d) > max_v) {
				max_v = rec.get(d);
				ans = d;
			}
		}
		System.out.println(ans);
		
	}
	public static void main(String[] args) {
		new B().doIt();
	}
	class Date implements Comparable<Date>{
		int year, month, day;
		Date(int year, int month, int day) {
			this.year = year; 
			this.month = month;
			this.day = day;
		}
		boolean isValid() {
			if(year <= 2012) return false;
			if(year >= 2016) return false;
			if(month <= 0) return false;
			if(month >= 13) return false;
			int d = 31;
			if(month == 2) d = 28;
			else if(month >= 8) {
				if (month % 2 != 0) d = 30;
			} else {
				if (month % 2 == 0) d = 30;
			}
			if(day <= 0 || day > d) return false;
			return true;
		}
		public int compareTo(Date d)
		{
			int s1 = year * 500 + month * 40 + day;
			int s2 = d.year * 500 + d.month * 40 + d.day;
			return s1 - s2;
		}
		public String toString()
		{
			String ans = String.format("%02d-%02d-%04d", day, month, year);
			return ans;
		}
	}
}
