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
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	public static void main(String [] args ) {
		try{
			String str;

			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			BufferedOutputStream bos = new BufferedOutputStream(System.out);

			String eol = System.getProperty("line.separator");
			byte [] eolb = eol.getBytes();
			byte[] spaceb= " ".getBytes();

			str = br.readLine();
			int [] countDate = new int[(14*32*3)+1];
			for(int i = 0 ; i < ((14*32*3)+1) ; i++) {
				countDate [i] = 0;
			}
			for(int i = 2 ; i < (str.length()-7) ; i++) {
				if(str.charAt(i) == '-') {
					// check date 
					int date = 0;
					int month = 0;
					int year = 0;
					boolean is = true;
					if(is) {
						is = false;
						if( (str.charAt(i-2) == '0' ) || (str.charAt(i-2) == '1') || (str.charAt(i-2) == '2' ) ) {
							if( (str.charAt(i-1) != '-') && ( (str.charAt(i-1) != '0') || (str.charAt(i-2) != '0') ) ){
								date = Integer.parseInt(str.substring(i-2,i));
								is = true;
							}
						} else if (str.charAt(i-2) == '3') {
							if( (str.charAt(i-1) == '0') || (str.charAt(i-1) == '1')) {
								date = Integer.parseInt(str.substring(i-2,i));
								is = true;
							}
						}
					}

					if(is) {
						is = false;
						if(str.charAt(i+1) == '0') {
							if(  (str.charAt(i+2) != '-') && ( (str.charAt(i+1) != '0') || (str.charAt(i+2) != '0') )) {
								month = Integer.parseInt(str.substring(i+1,i+3));
								is = true;
							}
						} else if(str.charAt(i+1) == '1') {
							if( (str.charAt(i+2) == '0' ) || (str.charAt(i+2) == '1' ) || (str.charAt(i+2) == '2')) {
								month = Integer.parseInt(str.substring(i+1,i+3));
								is = true;
							}
						}
					}
					if(is) {
						is = false;
						if( (str.charAt(i+3) == '-' ) && (str.charAt(i+4) == '2') && (str.charAt(i+5) == '0' ) && (str.charAt(i+6) == '1' ) ) {
							if( (str.charAt(i+7) == '3' ) || (str.charAt(i+7) == '4') || (str.charAt(i+7) == '5')  ){
								year = Integer.parseInt(str.substring(i+4,i+8));
								is = true;
							}
						}
					}
					if(is) {
						if( (month == 2) || (month ==4) || (month == 6) || (month == 9) || (month == 11) ) {
							if(date == 31) {
								is = false;
							}
						}
					}
					if(is) {
						if( (month==2) && ((date == 30) || (date==29))) {
							is = false;
						}
					}
					if(is) {
						countDate[ ( (32*14*(year-2013)) + (32*month) + date )]++;
					}
				}
			}
			int max = 0 ;
			int maxIndex = 0;
			for(int i = 0 ; i < ((3*32*14)+1) ; i++) {
				if(countDate[i] > max) {
					max = countDate[i];
					maxIndex = i;
				}
			}
			int year = maxIndex/(32*14);
			year += 2013;
			maxIndex = maxIndex % (32*14);
			int month = maxIndex/32;
			int date = maxIndex % 32;
			String d = new Integer(date).toString();
			if(d.length()==1) {
				d = "0".concat(d);
			}
			String m = new Integer(month).toString();
			if(m.length()==1) {
				m = "0".concat(m);
			}
			String y = new Integer(year).toString();
			bos.write(d.getBytes());
			bos.write("-".getBytes());
			bos.write(m.getBytes());
			bos.write("-".getBytes());
			bos.write(y.getBytes());
			bos.write(eolb);
			bos.flush();
		}  catch(IOException ioe) {
			ioe.printStackTrace();
		}
	}
}
