#include <iostream>
#include <string>
#include <map>
#include <functional>
#include <cstdio>
using namespace std;
#define program(x) int main(
#define staly const
#define i ,
#define oraz i
#define zawiera = {
#define wystarczy }
#define pare(x) { x }
#define jezeli if(
#define to ){
#define inaczej } else {
#define posiada(x) .count(x)
#define funkcja auto
#define zwraca(x) -> x {
#define robi {
#define zwroc return
#define dopoki while(
#define rob ){
#define alias_funkcji(nazwa, nowa) const auto & nowa = nazwa
#define wartosc_slownika(slownik, klucz) slownik.at(klucz)
namespace /* odmiana */{
using napis = string;
using napisow = napis;
}
namespace /* odmiana */{
using liczba = int;
using liczb = liczba;
using liczbe = liczba;
}
namespace /* odmiana */{
using znak = char;
using znakow = znak;
}
using stan = bool;
auto &pobierz = cin;
auto &wypisz = cout;
auto koniec_linii = '\n';
template<typename Klucz, typename Wartosc>
using slownik = map<Klucz, Wartosc>;
funkcja pobierz_znak() zwraca(znak)
zwroc getchar();
wystarczy;
funkcja pobiera(znak &pobrany) zwraca(stan)
znak koniec_pliku = EOF;
pobrany = pobierz_znak();
zwroc pobrany != koniec_pliku;
wystarczy;
program("@13th_Dragona") to
znak spacja = ' ', znak = spacja, stary_znak = znak;
dopoki pobiera(znak) rob
jezeli znak != spacja || znak != stary_znak to
wypisz << znak;
wystarczy;
stary_znak = znak;
wystarczy;
wystarczy;
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KI2luY2x1ZGUgPGNzdGRpbz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAojZGVmaW5lIHByb2dyYW0oeCkgaW50IG1haW4oCiNkZWZpbmUgc3RhbHkgY29uc3QKI2RlZmluZSBpICwgCiNkZWZpbmUgb3JheiBpCiNkZWZpbmUgemF3aWVyYSA9IHsKI2RlZmluZSB3eXN0YXJjenkgfQojZGVmaW5lIHBhcmUoeCkgeyB4IH0KI2RlZmluZSBqZXplbGkgaWYoCiNkZWZpbmUgdG8gKXsKI2RlZmluZSBpbmFjemVqIH0gZWxzZSB7CiNkZWZpbmUgcG9zaWFkYSh4KSAuY291bnQoeCkKI2RlZmluZSBmdW5rY2phIGF1dG8KI2RlZmluZSB6d3JhY2EoeCkgLT4geCB7CiNkZWZpbmUgcm9iaSB7CiNkZWZpbmUgendyb2MgcmV0dXJuCiNkZWZpbmUgZG9wb2tpIHdoaWxlKAojZGVmaW5lIHJvYiApewojZGVmaW5lIGFsaWFzX2Z1bmtjamkobmF6d2EsIG5vd2EpIGNvbnN0IGF1dG8gJiBub3dhID0gbmF6d2EKCiNkZWZpbmUgd2FydG9zY19zbG93bmlrYShzbG93bmlrLCBrbHVjeikgc2xvd25pay5hdChrbHVjeikKIApuYW1lc3BhY2UgLyogb2RtaWFuYSAqL3sKICAgIHVzaW5nIG5hcGlzID0gc3RyaW5nOwogICAgdXNpbmcgbmFwaXNvdyA9IG5hcGlzOwp9CiAKbmFtZXNwYWNlIC8qIG9kbWlhbmEgKi97CiAgICB1c2luZyBsaWN6YmEgPSBpbnQ7CiAgICB1c2luZyBsaWN6YiA9IGxpY3piYTsKICAgIHVzaW5nIGxpY3piZSA9IGxpY3piYTsKfQoKbmFtZXNwYWNlIC8qIG9kbWlhbmEgKi97Cgl1c2luZyB6bmFrID0gY2hhcjsKCXVzaW5nIHpuYWtvdyA9IHpuYWs7Cn0KCnVzaW5nIHN0YW4gPSBib29sOwoKYXV0byAmcG9iaWVyeiA9IGNpbjsKCmF1dG8gJnd5cGlzeiA9IGNvdXQ7CmF1dG8ga29uaWVjX2xpbmlpID0gJ1xuJzsKIAp0ZW1wbGF0ZTx0eXBlbmFtZSBLbHVjeiwgdHlwZW5hbWUgV2FydG9zYz4KdXNpbmcgc2xvd25payA9IG1hcDxLbHVjeiwgV2FydG9zYz47CgpmdW5rY2phIHBvYmllcnpfem5haygpIHp3cmFjYSh6bmFrKQogIHp3cm9jIGdldGNoYXIoKTsKd3lzdGFyY3p5OwoKCmZ1bmtjamEgcG9iaWVyYSh6bmFrICZwb2JyYW55KSB6d3JhY2Eoc3RhbikKICB6bmFrIGtvbmllY19wbGlrdSA9IEVPRjsKICBwb2JyYW55ID0gcG9iaWVyel96bmFrKCk7CiAgendyb2MgcG9icmFueSAhPSBrb25pZWNfcGxpa3U7Cnd5c3RhcmN6eTsKICAKcHJvZ3JhbSgiQDEzdGhfRHJhZ29uYSIpIHRvCiAgem5hayBzcGFjamEgPSAnICcsIHpuYWsgPSBzcGFjamEsIHN0YXJ5X3puYWsgPSB6bmFrOwogIAogIGRvcG9raSBwb2JpZXJhKHpuYWspIHJvYgogICAgamV6ZWxpIHpuYWsgIT0gc3BhY2phIHx8IHpuYWsgIT0gc3Rhcnlfem5hayB0bwogICAgICB3eXBpc3ogPDwgem5hazsKICAgIHd5c3RhcmN6eTsKICAgIAogICAgc3Rhcnlfem5hayA9IHpuYWs7CiAgd3lzdGFyY3p5OwoKd3lzdGFyY3p5Ow==