#include "string"
#include "deque"
#include "vector"
#include "iostream"
using namespace std;
//状态0 相同push 不同push且++
//状态1 相同no 不同push且++
//状态2 相同no 不同push且=0(到状态0)
int main()
{
//int value[] = {1, 2, 5};
int nLine;
string strTemp;
vector<string> strOutList;
cin >> nLine;
while(nLine--)
{
char letterOld = ' ';
int count = 0;
cin >> strTemp;
letterOld = strTemp[0];
string strOut;
strOut.push_back(strTemp[0]);
for (int i = 1; i < strTemp.size(); i++)
{
switch(count)
{
case 0: //状态0
if (letterOld == strTemp[i])
count++;
strOut.push_back(strTemp[i]);
letterOld = strTemp[i];
break;
case 1: //状态1
if (letterOld != strTemp[i])
{
count++;
strOut.push_back(strTemp[i]);
}
letterOld = strTemp[i];
break;
case 2: //状态2
if (letterOld != strTemp[i])
{
count = 0;
strOut.push_back(strTemp[i]);
}
letterOld = strTemp[i];
break;
}
}
strOutList.push_back(strOut);
}
for (int i = 0; i < strOutList.size(); i++)
cout << strOutList.at(i) << endl;
strOutList.clear();
return 0;
}
//暴力解法
#if 0
string findTri(string str)
{
int num = str.size();
char old = str[0];
int count = 1;
string strout = "";
strout.push_back(str[0]);
for (int i = 1; i < num; i++)
{
if (old == str[i])
count++;
else
count = 1;
if (count == 3)
count = 2;
else
{
strout.push_back(str[i]);
}
old = str[i];
}
return strout;
}
string findDouble(string str)
{
int num = str.size();
char old = str[0];
int count = 1;
string strout = "";
strout.push_back(str[0]);
bool flag = false;
for (int i = 1; i < num; i++)
{
if (old == str[i])
{
if (flag)
{
i++;
if (i < num)
;
else
break;
flag = false;
}
else
{
strout.push_back(str[i]);
i++;
if (i < num)
;
else
break;
flag = true;
}
}
else
{
flag = false;
}
strout.push_back(str[i]);
old = str[i];
}
return strout;
}
int main(int argv, char* argc[])
{
int numLine;
cin >> numLine;
deque<string> wordList;
for (int i = 0; i < numLine; i++)
{
string wordTemp;
cin >> wordTemp;
wordList.push_back(wordTemp);
}
//ut << numLine << endl;
while(!wordList.empty())
{
string wordTemp = wordList.at(0);
string wordTemp1 = findTri(wordTemp);
string wordTemp2 = findDouble(wordTemp1);
cout << wordTemp2 << endl;
wordList.pop_front();
}
return 0;
}
#endif