#include <iostream>
#include <sstream>
using namespace std;
int main ()
{
int LiczbaPrzypadkow;
cin >> LiczbaPrzypadkow;
string SkracaneSlowo;
int DlugoscSkracanegoSlowa;
static char PoprzedniaLitera;
int PozycjaAktualnejLitery;
ostringstream KonwersjaLicznikaWystapienAktualnejLitery;
static int LicznikWystapienAktualnejLitery = 1;
static string SkroconeSlowo;
for (int KtoryPrzypadek = 0; KtoryPrzypadek != LiczbaPrzypadkow;
++KtoryPrzypadek)
{
cin >> SkracaneSlowo;
SkroconeSlowo = "";
PoprzedniaLitera = static_cast <char> (NULL);
LicznikWystapienAktualnejLitery = 1;
DlugoscSkracanegoSlowa = SkracaneSlowo.length();
for (PozycjaAktualnejLitery = 0;
PozycjaAktualnejLitery < DlugoscSkracanegoSlowa;
++PozycjaAktualnejLitery)
{
if (PoprzedniaLitera ==
SkracaneSlowo [PozycjaAktualnejLitery])
{
++LicznikWystapienAktualnejLitery;
//Jeœli siê zgadza ostatnio to trzeba przeskoczyæ do else (goto).
}
else
{
if (LicznikWystapienAktualnejLitery > 2)
{
KonwersjaLicznikaWystapienAktualnejLitery <<
LicznikWystapienAktualnejLitery;
SkroconeSlowo +=
KonwersjaLicznikaWystapienAktualnejLitery.str () +
PoprzedniaLitera;
}
else
{
SkroconeSlowo += string (SkracaneSlowo,
PozycjaAktualnejLitery,
LicznikWystapienAktualnejLitery);
}
LicznikWystapienAktualnejLitery = 1;
PoprzedniaLitera = SkracaneSlowo [PozycjaAktualnejLitery];
}
}
cout << SkroconeSlowo << endl;
}
}