#include <bits/stdc++.h>
#define ll long long
#define fi first
#define se second
#define MASK(i) (1LL << (i))
#define BIT(x, i) (((x) >> (i)) & 1)
#define ALL(v) (v).begin(), (v).end()
#define pb push_back
#define fu(i, a, b) for (int i = (a), _b = (b); i <= _b; ++i)
#define fd(i, a, b) for (int i = (b), _a = (a); i >= _a; --i)
#define REP(i, n) for (int i = 1, _n = (n); i <= _n; ++i)
#define el cout << "\n"
#define MAX_SIZE 100005
#define LOG 21
#define MOD (ll)(1e9 + 7)
#define INF (ll)(1e15)
using namespace std;
mt19937 rd(chrono::steady_clock::now().time_since_epoch().count());
mt19937_64 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
template <class T1, class T2>
bool maximize(T1 &a, T2 b) {if (a < b){a = b; return true;} return false;}
template <class T1, class T2>
bool minimize(T1 &a, T2 b) {if (a > b){a = b; return true;} return false;}
template <class T1, class T2>
void add(T1 &a, T2 b) {a += b; if (a >= MOD) a -= MOD;}
template <class T1, class T2>
void sub(T1 &a, T2 b) {a -= b; if (a < 0) a += MOD;}
template <class T>
void dup_shot(vector <T> &v) {
sort(ALL(v));
v.erase(unique(ALL(v)), (v).end());
}
string s;
void init() {
getline(cin, s);
}
void run() {
int lastspace = 0;
for (int i = 0; i < (int)s.size(); i++) {
if (s[i] == ' ') maximize(lastspace, i);
}
int idx = 0;
while (idx < (int)s.size()) {
if (s[idx] == ' ') {
++idx; break;
}
cout << s[idx++];
} el;
while (idx < lastspace) {
cout << s[idx++];
} el;
++idx;
while (idx < (int)s.size()) {
cout << s[idx++];
}
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
init();
clock_t start = clock();
run();
cerr << "\nTime run: " << clock() - start << " ms!\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBNQVNLKGkpICgxTEwgPDwgKGkpKQojZGVmaW5lIEJJVCh4LCBpKSAoKCh4KSA+PiAoaSkpICYgMSkKI2RlZmluZSBBTEwodikgKHYpLmJlZ2luKCksICh2KS5lbmQoKQojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIGZ1KGksIGEsIGIpIGZvciAoaW50IGkgPSAoYSksIF9iID0gKGIpOyBpIDw9IF9iOyArK2kpCiNkZWZpbmUgZmQoaSwgYSwgYikgZm9yIChpbnQgaSA9IChiKSwgX2EgPSAoYSk7IGkgPj0gX2E7IC0taSkKI2RlZmluZSBSRVAoaSwgbikgZm9yIChpbnQgaSA9IDEsIF9uID0gKG4pOyBpIDw9IF9uOyArK2kpCiNkZWZpbmUgZWwgY291dCA8PCAiXG4iCiNkZWZpbmUgTUFYX1NJWkUgMTAwMDA1CiNkZWZpbmUgTE9HIDIxCiNkZWZpbmUgTU9EIChsbCkoMWU5ICsgNykKI2RlZmluZSBJTkYgKGxsKSgxZTE1KQoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKbXQxOTkzNyByZChjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkudGltZV9zaW5jZV9lcG9jaCgpLmNvdW50KCkpOwptdDE5OTM3XzY0IHJuZyhjaHJvbm86OmhpZ2hfcmVzb2x1dGlvbl9jbG9jazo6bm93KCkudGltZV9zaW5jZV9lcG9jaCgpLmNvdW50KCkpOwoKdGVtcGxhdGUgPGNsYXNzIFQxLCBjbGFzcyBUMj4KYm9vbCBtYXhpbWl6ZShUMSAmYSwgVDIgYikge2lmIChhIDwgYil7YSA9IGI7IHJldHVybiB0cnVlO30gcmV0dXJuIGZhbHNlO30KCnRlbXBsYXRlIDxjbGFzcyBUMSwgY2xhc3MgVDI+CmJvb2wgbWluaW1pemUoVDEgJmEsIFQyIGIpIHtpZiAoYSA+IGIpe2EgPSBiOyByZXR1cm4gdHJ1ZTt9IHJldHVybiBmYWxzZTt9Cgp0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPgp2b2lkIGFkZChUMSAmYSwgVDIgYikge2EgKz0gYjsgaWYgKGEgPj0gTU9EKSBhIC09IE1PRDt9Cgp0ZW1wbGF0ZSA8Y2xhc3MgVDEsIGNsYXNzIFQyPgp2b2lkIHN1YihUMSAmYSwgVDIgYikge2EgLT0gYjsgaWYgKGEgPCAwKSBhICs9IE1PRDt9Cgp0ZW1wbGF0ZSA8Y2xhc3MgVD4Kdm9pZCBkdXBfc2hvdCh2ZWN0b3IgPFQ+ICZ2KSB7CiAgICBzb3J0KEFMTCh2KSk7CiAgICB2LmVyYXNlKHVuaXF1ZShBTEwodikpLCAodikuZW5kKCkpOwp9CgpzdHJpbmcgczsKCnZvaWQgaW5pdCgpIHsKICAgIGdldGxpbmUoY2luLCBzKTsKfQoKdm9pZCBydW4oKSB7CiAgICBpbnQgbGFzdHNwYWNlID0gMDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgKGludClzLnNpemUoKTsgaSsrKSB7CiAgICAgICAgaWYgKHNbaV0gPT0gJyAnKSBtYXhpbWl6ZShsYXN0c3BhY2UsIGkpOwogICAgfQoKICAgIGludCBpZHggPSAwOwogICAgd2hpbGUgKGlkeCA8IChpbnQpcy5zaXplKCkpIHsKICAgICAgICBpZiAoc1tpZHhdID09ICcgJykgewogICAgICAgICAgICArK2lkeDsgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgc1tpZHgrK107CiAgICB9IGVsOwoKICAgIHdoaWxlIChpZHggPCBsYXN0c3BhY2UpIHsKICAgICAgICBjb3V0IDw8IHNbaWR4KytdOwogICAgfSBlbDsKCiAgICArK2lkeDsKICAgIHdoaWxlIChpZHggPCAoaW50KXMuc2l6ZSgpKSB7CiAgICAgICAgY291dCA8PCBzW2lkeCsrXTsKICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsKICAgIGNpbi50aWUoMCk7IGNvdXQudGllKDApOwogICAgaW5pdCgpOwogICAgY2xvY2tfdCBzdGFydCA9IGNsb2NrKCk7CiAgICBydW4oKTsKICAgIGNlcnIgPDwgIlxuVGltZSBydW46ICIgPDwgY2xvY2soKSAtIHN0YXJ0IDw8ICIgbXMhXG4iOwoKICAgIHJldHVybiAwOwp9Cg==