#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii =  pair<int, int>;
using pll =  pair<long long, long long>;
constexpr char ln =  '\n';
constexpr long long MOD = 998244353;
constexpr long long INF = 1000000009LL;
#define all(x) (x).begin(),(x).end()
#define rep(i,n) for(int i=0;i<(n);i++)
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }


int main() {   
    string a, b, c; cin >> a >> b >> c;
    if(a.back()==b[0] && b.back()==c[0]){
        cout << "YES" << ln;
    }else cout << "NO" << ln;
}

#include<stdio.h>

int main(){
	char a[150];
	int x=1;
	scanf("%[^\n]", a);
	for (int i=0 ; a[i]!='\0' ; i++){
		if (a[i]==' '){
			if (a[i-1]==a[i+1]){
				continue;
			} else{
				x=0;
				break;
			}
		}
	}
	printf("%s\n", x==1 ? "YES" : "NO");
	return 0;
}