#include <iostream>
#include <string>
#include <vector>

int main() {
	std::string s;
	std::cin >> s;
	std::vector<std::size_t> odpowiadajace_nawiasy(s.size());
	std::vector<std::size_t> stos;
	for (std::size_t i = 0; i < s.size(); i++) {
		char znak = s[i];
		if (znak == '[') {
			stos.push_back(i);
		} else if (znak == ']') {
			odpowiadajace_nawiasy[i] = stos.back();
			odpowiadajace_nawiasy[stos.back()] = i;
			stos.pop_back();
		}
	}
	int kierunek = 1;
	for (std::size_t i = 0; i < s.size(); i += kierunek) {
		char znak = s[i];
		if (znak == '[' || znak == ']') {
			i = odpowiadajace_nawiasy[i];
			kierunek = -kierunek;
		} else {
			std::cout << znak;
		}
	}
	std::cout << '\n';
	return 0;
}
