#include <iostream> // подключение библиотеки ввода-вывода
#include <string> // подключение библиотеки для работы со строками
#include <vector> // подключение библиотеки для работы с векторами

using namespace std; // подключение пространства имён std

int main(){
    vector <string> words, new_words; // массивы для хранения слов строки (используется вектор для устранения ограничения на размер памяти)
    string str; // вводимая строка
    int start = 0, end = 0; // счётчики массива для корректного добавления слов
    int space = 0; // счётчик для проверки на пробелы в строке

    // ввод строк
    cout << "Input stroke: ";
    getline(cin, str);

        // проверка на пустоту строки
    if (str.empty()){ // если строка пуста, то
        cout << "String can't be empty" << endl; // вывод сообщения об ошибке
        return 0; // завершение программы
    }
    else { // иначе проверка на пробелы
        for (int i = 0; i < str.size(); i++){ // цикл на всю строку
            if (str[i] == ' '){ // если символ является пробелом, то
                space++; // увеличиваем счётчик
            }
        }
        if (space == str.size()) { // если количество пробелов равно размеру строки, то
            cout << "String have only spaces." << endl; // вывод сообщения об ошибке
            return 0; // завершение программы
        }
    }

    for (int i = 0; i < str.size(); i++) { // цикл на прохождение строки
        if (str[i] == ' '){ // если текущий символ строк равен пробелу, то
            end = i; // счётчик окончания равен текущему значению i
            words.push_back(str.substr(start, (end-start))); // добавляем в массив слов часть строки от значения счётчика start. 
            // (end - start) нужен для вычисления количества символов
            start = end+1; // присваиваем счётчику start значение от (end + 1) для пропуска пробела и продолжения работы.
        }
    }

    words.push_back(str.substr(end+1, str.size())); // добавляем последнее слово, которое не попало в основной цикл.

    for (int i = 0; i < words.size(); i++){
        if (words[i].empty()){
            continue;
        }
        if (words[i].size() % 2 != 0){
            continue;
        }
        else {
            new_words.push_back(words[i]);
        }
    }

    cout << "Output stroke: ";
    for (int i = 0; i < new_words.size(); i++){
        cout << new_words[i] << " ";
    }


    cout << endl;

    return 0; // успешное завершение программы
}