import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;
public class Main {
private static boolean isPrime(int n) {
if (n <= 1) {
return false;
}
double sqrt = Math.sqrt(n);
for (int i = 2; i <= sqrt; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
LocalDate start = LocalDate.parse(sc.next(), DateTimeFormatter.ofPattern("yyyyMMdd"));
String day = sc.next();
int n = sc.nextInt();
sc.close();
int previousPrimeDuration = 0;
for (int i = 2; ; i++) {
if (isPrime(i)) {
start = start.plusDays(i - previousPrimeDuration);
if (isPrime(start.getMonth().ordinal() + 1) && start.getDayOfWeek().name().substring(0, 3).equals(day.toUpperCase())) {
System.out.println((i <= n? "Yes ": "No ") + i);
return;
}
previousPrimeDuration = i;
}
}
}
}