Problem:
Score : 100 points

Problem Statement

Rng is going to a festival.

The name of the festival is given to you as a string S, which ends with FESTIVAL, from input. Answer the question: "Rng is going to a festival of what?" Output the answer.

Here, assume that the name of "a festival of s" is a string obtained by appending FESTIVAL to the end of s.
For example, CODEFESTIVAL is a festival of CODE.

Constraints

9 \leq |S| \leq 50

S consists of uppercase English letters.

S ends with FESTIVAL.

Input

Input is given from Standard Input in the following format:

S

Output

Print the answer to the question: "Rng is going to a festival of what?"

Sample Input 1

CODEFESTIVAL

Sample Output 1

CODE

This is the same as the example in the statement.

Sample Input 2

CODEFESTIVALFESTIVAL

Sample Output 2

CODEFESTIVAL

This string is obtained by appending FESTIVAL to the end of CODEFESTIVAL, so it is a festival of CODEFESTIVAL.

Sample Input 3

YAKINIKUFESTIVAL

Sample Output 3

YAKINIKU

Solution in C++14 (GCC 5.4.1) (judge verdict: Wrong Answer)

// Restricted.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include <iostream>
#include <string>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <cctype>
#include <map>
#include <vector>
#include <fstream>
using namespace std;

int BubSort(int x[], int n)
{
	int i, j, temp;

	for (i = 0; i < n - 1; i++) {
		for (j = n - 1; j > i; j--) {
			if (x[j - 1] > x[j]) {  /* 前の要素の方が大きかったら */
				temp = x[j];        /* 交換する */
				x[j] = x[j - 1];
				x[j - 1] = temp;
			}
		}
	}
	return 0;
}

/*


))))((((

())))(((()

(())))(((())

((())))(((()))


*/
int main()
{
	cout << "YES";

	return 0;
}

int ColorfulLeaderboard()
{
	int n = 0;
	int a[4800];
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> a[i];
	}
	int color[8] = { 0 };
	int over = 0;
	for (int j =0 ; j < n; j++)
	{
		if (1 <= a[j] && a[j] <= 399)color[0] = 1;
		if (400 <= a[j] && a[j] <= 799)color[1] = 1;
		if (800 <= a[j] && a[j] <= 1199)color[2] = 1;
		if (1200 <= a[j] && a[j] <= 1599)color[3] = 1;
		if (1600 <= a[j] && a[j] <= 1999)color[4] = 1;
		if (2000 <= a[j] && a[j] <= 2399)color[5] = 1;
		if (2400 <= a[j] && a[j] <= 2799)color[6] = 1;
		if (2800 <= a[j] && a[j] <= 3199)color[7] = 1;
		if (3200 <= a[j])over++;
	}
	//min
	int min = 0;
	for (int k = 0; k < 8; k++)
	{
		min += color[k];
	}
	if (min == 0)min = 1;
	
	//max
	int max = 0;
	for (int l = 0; l < 8; l++)
	{
		max += color[l];
	}
	max += over;
	cout << min << " " << max << endl;;

	return 0;
}
int TravelingAtCoDeerProblem()
{
	int n = 0;
	int a[1000];
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> a[i];
	}

	BubSort(a, n);
	cout << a[n-1] - a[0] << endl;
	system("pause");
	return 0;

}

int RGBCards()
{
	int r, g, b = 0;


	cin >> r>>g >> b;
	
	if ((100 * r + 10 * g + b) % 4 == 0)
	{
		cout<<"YES" << endl;

	}
	else
	{
		cout << "NO" << endl;

	}
	system("pause");
	return 0;
}


int Bugged()
{
	int n = 0;
	int s[100] = { 0 };
	int score = 0;
	cin >> n;
	for (int i = 0; i < n; i++)
	{
		cin >> s[i];
	}

	for (int j = 0; j < n; j++)
	{
		score += s[j];
	}

	int min = 0;
	bool first_flag = 0;

	//成績が10の倍数の場合
	if (score % 10 == 0)
	{
		for (int k = 0; k < n; k++)
		{

			if (s[k] % 10 != 0)
			{
				if (first_flag == 0)
				{
					min = s[k];
					first_flag = 1;
				}
				else
				{
					if (s[k] < min)
					{
						min = s[k];
					}
				}
			}
		}

	}
	else
	{
		cout << score << endl;
		return 0;
	}

	//10で割り切れない整数が存在する場合
	if (min != 0)
	{
		score -= min;
		cout << score << endl;
		return 0;
	}
	else
	{
		score = 0;
		cout << score << endl;

	}

	return 0;
}

int Varied()
{
	string s;
	cin >> s;

	int a[1000] = { 0 };
	int n = 0;
	for (int i = 0; i < s.length(); i++)
	{
		n = (int)s[i];
		if (a[n] == 0)
		{
			a[n] = 1;
		}
		else
		{
			cout << "no" << endl;
			return 0;
		}
	}
	cout << "yes" << endl;
	return 0;
}

int Restricted()
{
	int x, y;
	cin >> x >> y;
	if (x + y < 10)
	{
		cout << x + y << endl;
	}
	else
	{
		cout << "error" << endl;
	}
	return 0;
}