#include <iostream>
#include <cstring>
#include <string.h>
#include <sstream>
using namespace std;
int main(int argc, char** argv)
{
int x;
cin >> x;
string *napis = new string [x];
cin.sync();
for(int i=0; i<x; i++)
{
getline(cin, napis[i]);
}
for(int i=0; i<x; i++)
{
for(int j=0; napis[i][j]!='\0'; j++)
{
if(napis[i][j] == napis[i][j+1])
{
bool k = true;
int licznik = 1;
for(; k; licznik++)
{
if(napis[i][j+licznik] != napis[i][j+licznik+1]) k = false;
}
if( licznik < 3 ) continue;
stringstream ss;
ss << licznik;
string liczba = ss.str();
int iloscCyfr;
for(int k=j+1, l=0; liczba[l]!='\0'; k++, l++)
{
napis[i][k] = liczba[l];
iloscCyfr = l+1;
}
for(int m=0; m<(licznik-iloscCyfr-1); m++)
{
for(int s=j+iloscCyfr+1; napis[i][s]!='\0'; s++)
{
napis[i][s] = napis[i][s+1];
}
}
}
}
}
for (int i=0; i<x; i++)
{
cout << napis[i] <<endl;
}
delete [] napis;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8c3N0cmVhbT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCnsKCWludCB4OwoJY2luID4+IHg7CglzdHJpbmcgKm5hcGlzID0gbmV3IHN0cmluZyBbeF07CgljaW4uc3luYygpOwoJZm9yKGludCBpPTA7IGk8eDsgaSsrKQoJewoJCWdldGxpbmUoY2luLCBuYXBpc1tpXSk7Cgl9Cglmb3IoaW50IGk9MDsgaTx4OyBpKyspCgl7CgkJZm9yKGludCBqPTA7IG5hcGlzW2ldW2pdIT0nXDAnOyBqKyspCgkJewoJCQlpZihuYXBpc1tpXVtqXSA9PSBuYXBpc1tpXVtqKzFdKQoJCQl7CgkJCQlib29sIGsgPSB0cnVlOwoJCQkJaW50IGxpY3puaWsgPSAxOwoJCQkJZm9yKDsgazsgbGljem5paysrKQoJCQkJewoJCQkJCWlmKG5hcGlzW2ldW2orbGljem5pa10gIT0gbmFwaXNbaV1baitsaWN6bmlrKzFdKSBrID0gZmFsc2U7CgkJCQl9CgkJCQlpZiggbGljem5payA8IDMgKSBjb250aW51ZTsKCQkJCXN0cmluZ3N0cmVhbSBzczsKCQkJCXNzIDw8IGxpY3puaWs7CgkJCQlzdHJpbmcgbGljemJhID0gc3Muc3RyKCk7CgkJCQlpbnQgaWxvc2NDeWZyOwoJCQkJZm9yKGludCBrPWorMSwgbD0wOyBsaWN6YmFbbF0hPSdcMCc7IGsrKywgbCsrKQoJCQkJewoJCQkJCW5hcGlzW2ldW2tdID0gbGljemJhW2xdOwoJCQkJCWlsb3NjQ3lmciA9IGwrMTsKCQkJCX0KCQkJCWZvcihpbnQgbT0wOyBtPChsaWN6bmlrLWlsb3NjQ3lmci0xKTsgbSsrKQoJCQkJewoJCQkJCWZvcihpbnQgcz1qK2lsb3NjQ3lmcisxOyBuYXBpc1tpXVtzXSE9J1wwJzsgcysrKQoJCQkJCXsKCQkJCQkJbmFwaXNbaV1bc10gPSBuYXBpc1tpXVtzKzFdOwkJCQkJCQkKCQkJCQl9CgkgICAJCQl9CgkJCX0KCQl9CQoJfQoJZm9yIChpbnQgaT0wOyBpPHg7IGkrKykKCXsKCQljb3V0IDw8IG5hcGlzW2ldIDw8ZW5kbDsKCX0KCWRlbGV0ZSBbXSBuYXBpczsKCXJldHVybiAwOwp9