#include<iostream>
#include<string>
using namespace std;
void TrimStart(string s) {
int n = s.length();
int a=0,a2=0;
for (int i = 0;i < n;i++) {
if (s[i] == '[') {
a2 = i+1;
for (int j = i + 1;j < n;j++) {
if (s[j] == ' ' || s[j] == '\t') a++;
else {
i = n; break;
}
} }
}cout<< s.erase(a2, a);
}
void TrimEbnd(string s) {
int n = s.length();
int a = 0, a2 = 0;
for (int i = n;i >0;i--) {
if (s[i] == ']') {
a2 = i ;
for (int j = i - 1;j > 0;j--) {
if (s[j] == ' ' || s[j] == '\t') a++;
else {
a2 -= a;i = 0; break;
}
}
}
}cout << s.erase(a2, a);
}
void Trim(string s) {
int n = s.length();
int a = 0, a2 = 0;
for (int i = 0;i < n;i++) {
if (s[i] == '[') {
a2 = i + 1;
for (int j = i + 1;j < n;j++) {
if (s[j] == ' ' || s[j] == '\t') a++;
else {
i = n; break;
}
}
}
}s= s.erase(a2, a);
int n1 = s.length();
int a1 = 0, a21 = 0;
for (int i = n1;i > 0;i--) {
if (s[i] == ']') {
a21 = i;
for (int j = i - 1;j > 0;j--) {
if (s[j] == ' ' || s[j] == '\t') a1++;
else {
a21 -= a1;i = 0; break;
}
}
}
}s= s.erase(a21, a1);
cout << s;
}
int main() {
string s;
getline(cin, s);
TrimStart(s);
cout << endl;
TrimEbnd(s);
cout << endl;
Trim(s);
}