#include <bits/stdc++.h>
using namespace std;
int a[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
bool check(int d1, int m1, int y1, int d2, int m2, int y2) {
  if (m2 == 2 && y2 % 4 == 0) a[m2]++;
  if (m2 > 12 || d2 > a[m2]) return false;
  if (y1 - y2 > 18 || y1 - y2 == 18 && m1 > m2 ||
      y1 - y2 == 18 && m1 == m2 && d1 >= d2)
    return true;
  return false;
}
int main() {
  string s;
  int d1, m1, y1, d2, m2, y2;
  scanf("%d.%d.%d", &d1, &m1, &y1);
  scanf("%d.%d.%d", &d2, &m2, &y2);
  if (check(d1, m1, y1, d2, m2, y2))
    s = "YES";
  else if (check(d1, m1, y1, d2, y2, m2))
    s = "YES";
  else if (check(d1, m1, y1, m2, d2, y2))
    s = "YES";
  else if (check(d1, m1, y1, m2, y2, d2))
    s = "YES";
  else if (check(d1, m1, y1, y2, d2, m2))
    s = "YES";
  else if (check(d1, m1, y1, y2, m2, d2))
    s = "YES";
  else
    s = "NO";
  cout << s;
  return 0;
}
