#include<bits/stdc++.h>
#include <iostream>
#include <ctype.h>
#include <math.h>
#include <set>
#include<string.h>
#include<stdio.h>
 
using namespace std;
#define boost std::ios::sync_with_stdio(false);
 
typedef long long ll;
 
int t;
const int mod = 1000000007;
const int N = 1e3 + 6;
const int MOD = 2019;
 
int GCD(int a, int b)
{
    if(b == 0)
    return a;
    else 
     return GCD(b,a%b);
}
 
 
int pow(int a, int b, int m)
{
	int ans=1;
	while(b)
	{
		if(b&1)
			ans=(ans*a)%m;
		b/=2;
		a=(a*a)%m;
	}
	return ans;
}
 
int modinv(int k)
{
	return pow(k, MOD-2, MOD);
}

int pl[1000003];
 
void sieve(ll n) {
	bool prime[n+1];
	memset(prime, 1, sizeof prime);
	for(ll p = 2; p*p <= n; p++) {
		if(prime[p]) {
			for(ll i = p*p; i <= n; i+= p) {
				prime[i] = false;
			}
		}
	}
	pl[0] = 0;
	for(ll i = 3; i <= n; i++) {
		pl[i] = pl[i-1];
		if(prime[i]) pl[i]++;
	}
}

int primeDivisorCount(int x)
{
    int count = 0;
    for(ll i = 1;i*i<=x;i++)
    {
        if(x%i == 0)
        {
            if(x/i != i)
            {
                count+=2;
            }
            else
            {
                count++;
            }
        }
    }
    return count;
}

int findGCD(vector<int> &arr, int n) 
{ 
	int result = arr[0]; 
	for (int i = 1; i < n; i++) 
	{ 
		result = __gcd(arr[i], result)%mod; 

		if(result == 1) 
		{ 
		return 1%mod; 
		} 
	} 
	result %= mod;
	return result; 
} 

int main()
{
   
    boost;
  
    string s;
    cin>>s;
    
    int x = s.rfind(".");
    string r = s.substr(0,x);
    
    cout<<r<<endl;
    
    return 0;
}

#include "bits/stdc++.h"
using namespace std;

int main() {
    string x, ans;
    cin >> x;

    for (int i = 0; i < x.length(); i++) {
        if (x[i] == '.') {
            break;
        }
        else {
            ans += x[i];
        }
    }
    
    cout << ans << endl;

    return 0;
}
