#include <bits/stdc++.h>
int f_min(int x, int y) {
  if (x < y)
    return x;
  else
    return y;
}
int f_max(int x, int y) {
  if (x < y)
    return y;
  else
    return x;
}
void swap(int& x, int& y) {
  x = x ^ y;
  y = x ^ y;
  x = x ^ y;
}
int f_abs(int x) { return (x) > (0) ? (x) : (-x); }
int lowbit(int x) { return (x) & (-x); }
using namespace std;
const int MM = 511111;
const double Pi = acos(-1.0);
const double lep = 1e-10;
const double inf = 1000000000.00;
int dx[4] = {1, 0, 0, -1};
int dy[4] = {0, 1, -1, 0};
int N, M, Q;
int num[MM];
bool vis[MM];
struct Pos {
  int x, y, z;
} p[MM];
void get_data() {
  int i, j, k;
  for (i = 0; i < 2; i++) {
    scanf("%d%d%d", &p[i].x, &p[i].y, &p[i].z);
  }
}
void solve() {
  int i, j, k, ans = 0;
  if (p[0].x == p[1].x) ans++;
  if (p[0].y == p[1].y) ans++;
  if (p[0].z == p[1].z) ans++;
  if (ans >= 1)
    puts("YES");
  else
    puts("NO");
}
int main() {
  get_data(), solve();
  return 0;
}
