#include <bits/stdc++.h>
using namespace std;
vector<int> v1(3);
vector<int> v2(3);
int ch(int x, int y, int z) {
  if (v2[x] > 31) return 0;
  if (v2[y] > 12) return 0;
  int tmp_y = v2[z] + 18;
  if (tmp_y > 99) return 0;
  if ((v2[y] == 4) || (v2[y] == 6) || (v2[y] == 9) || (v2[y] == 11))
    if (v2[x] == 31) return 0;
  if (v2[y] == 2) {
    if (v2[z] % 4 == 0) {
      if (v2[x] > 29) return 0;
    } else if (v2[x] > 28)
      return 0;
  }
  int tmp_d = v2[x];
  int tmp_m = v2[y];
  if (v2[z] % 4 == 0)
    if ((tmp_d == 29) && (tmp_m == 2)) {
      tmp_d = 1;
      tmp_m = 3;
    }
  if (v1[2] > tmp_y) return 1;
  if ((v1[2] == tmp_y) && (v1[1] > tmp_m)) return 1;
  if ((v1[2] == tmp_y) && (v1[1] == tmp_m) && (v1[0] >= tmp_d)) return 1;
  return 0;
}
int main(void) {
  scanf("%d.%d.%d", &v1[0], &v1[1], &v1[2]);
  scanf("%d.%d.%d", &v2[0], &v2[1], &v2[2]);
  if (ch(0, 1, 2) || ch(0, 2, 1) || ch(1, 0, 2) || ch(1, 2, 0) || ch(2, 0, 1) ||
      ch(2, 1, 0))
    printf("YES\n");
  else
    printf("NO\n");
  return 0;
}
