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>
using namespace std;
template <typename _KTy, typename _Ty>
ostream& operator<<(ostream& ostr, const pair<_KTy, _Ty>& m) {
  cout << "{" << m.first << ", " << m.second << "}";
  return ostr;
}
template <typename _KTy, typename _Ty>
ostream& operator<<(ostream& ostr, const map<_KTy, _Ty>& m) {
  if (m.empty()) {
    cout << "{ }";
    return ostr;
  }
  cout << "{" << *m.begin();
  for (auto itr = ++m.begin(); itr != m.end(); itr++) {
    cout << ", " << *itr;
  }
  cout << "}";
  return ostr;
}
template <typename _Ty>
ostream& operator<<(ostream& ostr, const vector<_Ty>& v) {
  if (v.empty()) {
    cout << "{ }";
    return ostr;
  }
  cout << "{" << v.front();
  for (auto itr = ++v.begin(); itr != v.end(); itr++) {
    cout << ", " << *itr;
  }
  cout << "}";
  return ostr;
}
template <typename _Ty>
ostream& operator<<(ostream& ostr, const set<_Ty>& s) {
  if (s.empty()) {
    cout << "{ }";
    return ostr;
  }
  cout << "{" << *(s.begin());
  for (auto itr = ++s.begin(); itr != s.end(); itr++) {
    cout << ", " << *itr;
  }
  cout << "}";
  return ostr;
}
int main() {
  string A, B, C;
  cin >> A >> B >> C;
  if (A.back() == B.front() && B.front() == C.back())
    cout << "YES";
  else
    cout << "NO";
  cout << endl;
  return 0;
}
