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

int main() {
  string X;
  cin >> X;
  int s;
  for (int i = 0; i < (int)X.size(); i++) {
    if (X.at(i) == '.') {
      s = X.size();
      for (int j = 0; j < s - i; j++) {
        X.pop_back();
      }
    }
  }
  cout << X << endl;
}
#include<bits/stdc++.h>
#define  all(v)            v.begin(), v.end()
#define  sz(x)             (ll)x.size()
#define  debug(x)          cout << #x << ':' << x << endl;
#define  rep(i,n)          for(long long i = 0; i <  n ; i++)
#define  reps(i,n)         for(long long i = 1; i <= n ; i++)
#define  make_unique(v)    sort(all(v));v.erase(unique(all(v)), v.end());
#define  REMOVE(v,a)       v.erase(remove(v.begin(),v.end(), a), v.end());
#define  pb                push_back
#define  eb                emplace_back
#define  mp                make_pair
#define  endl              '\n'
#define  fi                first
#define  se                second
 
using namespace std;
typedef long long          ll;
typedef vector<long long>  vll;
typedef pair<ll,ll>        pll;
typedef vector<pll>  	   vpll;
bool cmp(ll X, ll Y) {return X > Y;}
const ll MOD = 1e9 + 7;
ll gcd(ll a, ll b) {return !b ? a : gcd(b, a % b);}
ll lcm(ll a, ll b) {return (a / gcd(a, b)) * b;}
ll modpow(ll a, ll b, ll m=MOD){a %= m; ll res = 1; while (b) {if (b & 1)res = (res * a) % m; a = (a * a) % m; b >>= 1;} return res;}
ll bpow(ll a, ll b){if(b<0){return 0;}ll res = 1; while (b) {if (b & 1)res = res * a; a = a * a; b >>= 1;} return res;}
ll modinv(ll a, ll m = MOD) {return modpow(a, m - 2, m);}


const int N = 2e7+2;
const double EPS = (1e-10);
int dcp(double A, double B){return fabs(A-B)<=EPS ? 0 : A<B ? -1:1;}


map<ll,ll>cnt;
ll spf[N];

void sieve(){
	for(ll i=2;i<N;i++){
		if(!spf[i]){
			for(ll j=i;j<N;j+=i){
				spf[j]++;
			}
		}
	}

}

  

ll solve(char c){
	return (c-'a');
}

int main(){ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
string s;cin>>s;
string ans = "";
for(ll i = 0;i<s.length();i++){
	if(s[i] == '.'){break;}
	ans+=(s[i]);
}
cout<<ans;
}
