#include <iostream>
#include <algorithm>
#include <string>
void trim_left(std::string & str) {
str.erase(str.begin(), str.begin() + str.find_first_not_of(" "));
}
void trim_right(std::string & str) {
str.erase(str.begin() + str.find_last_not_of(" "), str.end());
}
void trim(std::string & str) {
trim_left(str);
trim_right(str);
}
bool is_adjacent_space(char const lhs, char const rhs) {
return ((lhs == ' ') && (rhs == ' '));
}
void delete_spaces(std::string & str) {
trim(str);
str.erase(std::unique(str.begin(), str.end(), is_adjacent_space), str.end());
}
int main() {
std::string str;
std::cout << "Enter your str" << std::endl;
getline(std::cin, str);
delete_spaces(str);
std::cout << "'" << str << "'" << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8c3RyaW5nPgoKCnZvaWQgdHJpbV9sZWZ0KHN0ZDo6c3RyaW5nICYgc3RyKSB7CiAgIHN0ci5lcmFzZShzdHIuYmVnaW4oKSwgc3RyLmJlZ2luKCkgKyBzdHIuZmluZF9maXJzdF9ub3Rfb2YoIiAiKSk7Cn0KCnZvaWQgdHJpbV9yaWdodChzdGQ6OnN0cmluZyAmIHN0cikgewogICBzdHIuZXJhc2Uoc3RyLmJlZ2luKCkgKyBzdHIuZmluZF9sYXN0X25vdF9vZigiICIpLCBzdHIuZW5kKCkpOwp9Cgp2b2lkIHRyaW0oc3RkOjpzdHJpbmcgJiBzdHIpIHsKICAgdHJpbV9sZWZ0KHN0cik7CiAgIHRyaW1fcmlnaHQoc3RyKTsKfQoKYm9vbCBpc19hZGphY2VudF9zcGFjZShjaGFyIGNvbnN0IGxocywgY2hhciBjb25zdCByaHMpIHsKICAgcmV0dXJuICgobGhzID09ICcgJykgJiYgKHJocyA9PSAnICcpKTsKfQoKdm9pZCBkZWxldGVfc3BhY2VzKHN0ZDo6c3RyaW5nICYgc3RyKSB7CiAgIHRyaW0oc3RyKTsKICAgc3RyLmVyYXNlKHN0ZDo6dW5pcXVlKHN0ci5iZWdpbigpLCBzdHIuZW5kKCksIGlzX2FkamFjZW50X3NwYWNlKSwgc3RyLmVuZCgpKTsKfQoKCmludCBtYWluKCkgewogICBzdGQ6OnN0cmluZyBzdHI7CiAgIHN0ZDo6Y291dCA8PCAiRW50ZXIgeW91ciBzdHIiIDw8IHN0ZDo6ZW5kbDsKICAgZ2V0bGluZShzdGQ6OmNpbiwgc3RyKTsKICAgZGVsZXRlX3NwYWNlcyhzdHIpOwogICBzdGQ6OmNvdXQgPDwgIiciIDw8IHN0ciA8PCAiJyIgPDwgc3RkOjplbmRsOwp9