#include <iostream>
#include <string>
#include <cstdio>
#include <sstream>
using namespace std;
string napis;
string calosc;
int jeden;
void znajdz(string &napis)
{
int wielkosc_napisu=napis.length();
int pomocnicza=0;
string szukaj;
string literka;
string p_napis;
int help=0;
p_napis=napis;
for(int i=0; i<wielkosc_napisu-1; i++)
{
if(napis[i]==napis[i+1])
{
pomocnicza++;
szukaj=napis[i];
}else
{
literka=napis[i];
napis.erase(0,1);
break;
}
}
if(pomocnicza+1==wielkosc_napisu)
help=1;
else
help=0;
size_t pozycja=napis.find(szukaj);
if(pomocnicza>=2){
int o;
o = pomocnicza+1;
ostringstream ss;
ss << o;
string str = ss.str();
p_napis.erase(pozycja,pomocnicza);
p_napis.insert(pozycja+1,str);
p_napis.erase(2,wielkosc_napisu-2);
int k=o%10;
ostringstream kk;
kk << k;
string strr = kk.str();
if(pomocnicza>8)
p_napis.insert(pozycja+2,strr);
if(pomocnicza>98)
p_napis.insert(pozycja+1,"1");
calosc+=p_napis;
napis.erase(0,pomocnicza+help);
}else
calosc+=literka;
if(wielkosc_napisu<3)
{
calosc+=napis;
napis.erase(0,wielkosc_napisu);
}
jeden=napis.length();
}
int main()
{
int Test=0;
cin>>Test;
for(int i=0; i<Test; i++)
{
calosc="";
cin>>napis;
do{
znajdz(napis);
}while(jeden!=0);
cout<<calosc<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8c3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RyaW5nIG5hcGlzOwpzdHJpbmcgY2Fsb3NjOwppbnQgamVkZW47Cgp2b2lkIHpuYWpkeihzdHJpbmcgJm5hcGlzKQp7CiAgICBpbnQgd2llbGtvc2NfbmFwaXN1PW5hcGlzLmxlbmd0aCgpOwogICAgaW50IHBvbW9jbmljemE9MDsKICAgIHN0cmluZyBzenVrYWo7CiAgICBzdHJpbmcgbGl0ZXJrYTsKICAgIHN0cmluZyBwX25hcGlzOwogICAgaW50IGhlbHA9MDsKICAgIHBfbmFwaXM9bmFwaXM7CgogICAgIGZvcihpbnQgaT0wOyBpPHdpZWxrb3NjX25hcGlzdS0xOyBpKyspCiAgICAgICAgewogICAgICAgICAgICAgICAgaWYobmFwaXNbaV09PW5hcGlzW2krMV0pCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcG9tb2NuaWN6YSsrOwogICAgICAgICAgICAgICAgICAgIHN6dWthaj1uYXBpc1tpXTsKICAgICAgICAgICAgICAgIH1lbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbGl0ZXJrYT1uYXBpc1tpXTsKICAgICAgICAgICAgICAgICAgICBuYXBpcy5lcmFzZSgwLDEpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICB9CiAgICAgICAgaWYocG9tb2NuaWN6YSsxPT13aWVsa29zY19uYXBpc3UpCiAgICAgICAgICAgIGhlbHA9MTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGhlbHA9MDsKICAgICAgICBzaXplX3QgcG96eWNqYT1uYXBpcy5maW5kKHN6dWthaik7CiAgICAgICAgaWYocG9tb2NuaWN6YT49Mil7CiAgICAgICAgICAgIGludCBvOwogICAgICAgICAgICBvID0gcG9tb2NuaWN6YSsxOwogICAgICAgICAgICBvc3RyaW5nc3RyZWFtIHNzOwogICAgICAgICAgICBzcyA8PCBvOwogICAgICAgICAgICBzdHJpbmcgc3RyID0gc3Muc3RyKCk7CiAgICAgICAgICAgIHBfbmFwaXMuZXJhc2UocG96eWNqYSxwb21vY25pY3phKTsKICAgICAgICAgICAgcF9uYXBpcy5pbnNlcnQocG96eWNqYSsxLHN0cik7CiAgICAgICAgICAgIHBfbmFwaXMuZXJhc2UoMix3aWVsa29zY19uYXBpc3UtMik7CiAgICAgICAgICAgICAgICBpbnQgaz1vJTEwOwogICAgICAgICAgICAgICAgb3N0cmluZ3N0cmVhbSBrazsKICAgICAgICAgICAgICAgIGtrIDw8IGs7CiAgICAgICAgICAgICAgICBzdHJpbmcgc3RyciA9IGtrLnN0cigpOwogICAgICAgICAgICBpZihwb21vY25pY3phPjgpCiAgICAgICAgICAgIHBfbmFwaXMuaW5zZXJ0KHBvenljamErMixzdHJyKTsKICAgICAgICAgICAgaWYocG9tb2NuaWN6YT45OCkKICAgICAgICAgICAgcF9uYXBpcy5pbnNlcnQocG96eWNqYSsxLCIxIik7CiAgICAgICAgICAgIGNhbG9zYys9cF9uYXBpczsKICAgICAgICAgICAgbmFwaXMuZXJhc2UoMCxwb21vY25pY3phK2hlbHApOwogICAgICAgIH1lbHNlCiAgICAgICAgY2Fsb3NjKz1saXRlcmthOwogICAgaWYod2llbGtvc2NfbmFwaXN1PDMpCiAgICAgICAgewogICAgICAgICAgICBjYWxvc2MrPW5hcGlzOwogICAgICAgICAgICBuYXBpcy5lcmFzZSgwLHdpZWxrb3NjX25hcGlzdSk7CiAgICAgICAgfQogICAgICAgIGplZGVuPW5hcGlzLmxlbmd0aCgpOwogICAgICAgIH0KICAgIGludCBtYWluKCkKICAgIHsKICAgICAgICAgICAgaW50IFRlc3Q9MDsKICAgICAgICAgICAgY2luPj5UZXN0OwogICAgICAgICAgICBmb3IoaW50IGk9MDsgaTxUZXN0OyBpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNhbG9zYz0iIjsKICAgICAgICAgICAgICAgIGNpbj4+bmFwaXM7CiAgICAgICAgICAgICAgICAgICBkb3sKICAgICAgICAgICAgICAgICAgICB6bmFqZHoobmFwaXMpOwogICAgICAgICAgICAgICB9d2hpbGUoamVkZW4hPTApOwogICAgICAgICAgICAgICAgY291dDw8Y2Fsb3NjPDxlbmRsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAwOwogICAgfQoKCg==