You are given three strings A, B and C. Check whether they form a word chain.

More formally, determine whether both of the following are true:

* The last character in A and the initial character in B are the same.
* The last character in B and the initial character in C are the same.



If both are true, print `YES`. Otherwise, print `NO`.

Constraints

* A, B and C are all composed of lowercase English letters (`a` - `z`).
* 1 ≤ |A|, |B|, |C| ≤ 10, where |A|, |B| and |C| are the lengths of A, B and C, respectively.

Input

Input is given from Standard Input in the following format:


A B C


Output

Print `YES` or `NO`.

Examples

Input

rng gorilla apple


Output

YES


Input

yakiniku unagi sushi


Output

NO


Input

a a a


Output

YES


Input

aaaaaaaaab aaaaaaaaaa aaaaaaaaab


Output

NO
#include <bits/stdc++.h>
int main() {
  char a1[10], a2[10], a3[10];
  scanf("%s %s %s", a1, a2, a3);
  int l1, l2, l3;
  l1 = strlen(a1);
  l2 = strlen(a2);
  l3 = strlen(a3);
  char x, y1, y2, z;
  x = a1[l1 - 1];
  y1 = a2[0];
  y2 = a2[l2 - 1];
  z = a3[0];
  if (x == y1 && y2 == z) printf("YES\nThey form a word chain.");
  if (x != y1) printf("NO");
  if (x == y1 && y2 != z)
    printf("NO\nA and B form a word chain, but B and C do not.");
  return 0;
}
