#include <bits/stdc++.h>
using namespace std;
const int MAX = 1000;
// Inverte um número(123 -> 321).
void inverte(char m[], int t) {
int i = 0, j = t - 1;
char aux[10];
while(j > i) {
aux[0] = m[i];
m[i] = m[j];
m[j] = aux[0];
i++;
j--;
}
}
int main () {
int n;
scanf("%d", &n);
for (int k = 0; k < n; k++) {
int b, e;
scanf("%d %d", &b, &e);
int vec[MAX];
int aux = 0;
for (int i = b; i <= e; i++) {
vec[aux] = i;
aux++;
}
char prin[MAX];
int auxx = 0;
for (int i = 0; i < aux; i++){
if (vec[i] < 10) {
prin[auxx] = vec[i];
auxx++;
}
else if (vec[i] >= 10 && vec[i] < 100) {
// Primeiro digito =
int au = vec[i] / 10;
prin[auxx] = au;
auxx++;
// Segundo digito =
int ux = vec[i] - (au * 10);
prin[auxx] = ux;
auxx++;
}
else if (vec[i] >= 100 && vec[i] < 1000) {
// Primeiro digito -=
int au = vec[i] / 100;
prin[auxx] = au;
auxx++;
// Segundo digito =
int ux = vec[i] - (au * 100);
int auu = ux / 10;
prin[auxx] = auu;
auxx++;
// Terceiro digito =
int uxx = ux - (auu * 10);
prin[auxx] = uxx;
auxx++;
}
else if (vec[i] >= 1000 && vec[i] < 10000) {
// Primeiro Digito =
int au = vec[i] / 1000;
prin[auxx] = au;
auxx++;
// Segundo Digito =
int ux = vec[i] - (au * 1000);
int auu = ux / 100;
prin[auxx] = auu;
auxx++;
// Terceiro Digito =
int uxx = ux - (auu * 100);
int aau = uxx / 10;
prin[auxx] = aau;
auxx++;
// Quarto Digito =
int uux = uxx - (aau * 10);
prin[auxx] = uux;
auxx++;
}
else if (vec[i] >= 10000 && vec[i] < 1000000) {
// Primeiro Digito =
int au = vec[i] / 10000;
prin[auxx] = au;
auxx++;
// Segundo Digito =
int ux = vec[i] - (au * 10000);
int auu = ux / 1000;
prin[auxx] = auu;
auxx++;
// Terceiro Digito =
int uxx = ux - (auu * 1000);
int aau = uxx / 100;
prin[auxx] = aau;
auxx++;
// Quarto Digito =
int uuxx = uxx - (aau * 100);
int aauu = uuxx / 10;
prin[auxx] = aauu;
auxx++;
// Quinto Digito =
int uuxxx = uuxx - (aauu * 10);
prin[auxx] = uuxxx;
auxx++;
}
}
char prino[MAX];
for (int i = 0; i < auxx; i++) {
prino[i] = prin[i];
}
inverte(prino, auxx);
printf("%s%s\n", prin, prino);
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBNQVggPSAxMDAwOwovLyBJbnZlcnRlIHVtIG7Dum1lcm8oMTIzIC0+IDMyMSkuIAp2b2lkIGludmVydGUoY2hhciBtW10sIGludCB0KSB7IAkKCWludCBpID0gMCwgaiA9IHQgLSAxOyAJCgljaGFyIGF1eFsxMF07IAkKCXdoaWxlKGogPiBpKSB7IAkJCgkJYXV4WzBdID0gbVtpXTsgCQkKCQltW2ldID0gbVtqXTsgCQkKCQltW2pdID0gYXV4WzBdOyAJCQoJCWkrKzsgCQkKCQlqLS07IAkKCX0gCn0KaW50IG1haW4gKCkgewoJaW50IG47CglzY2FuZigiJWQiLCAmbik7Cglmb3IgKGludCBrID0gMDsgayA8IG47IGsrKykgewoJCWludCBiLCBlOwoJCXNjYW5mKCIlZCAlZCIsICZiLCAmZSk7CgkJaW50IHZlY1tNQVhdOwoJCWludCBhdXggPSAwOwoJCWZvciAoaW50IGkgPSBiOyBpIDw9IGU7IGkrKykgewoJCQl2ZWNbYXV4XSA9IGk7CgkJCWF1eCsrOwoJCX0KCQljaGFyIHByaW5bTUFYXTsKCQlpbnQgYXV4eCA9IDA7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBhdXg7IGkrKyl7CgkJCWlmICh2ZWNbaV0gPCAxMCkgewoJCQkJcHJpblthdXh4XSA9IHZlY1tpXTsKCQkJCWF1eHgrKzsKCQkJfQoJCQllbHNlIGlmICh2ZWNbaV0gPj0gMTAgJiYgdmVjW2ldIDwgMTAwKSB7CgkJCQkvLyBQcmltZWlybyBkaWdpdG8gPQoJCQkJaW50IGF1ID0gdmVjW2ldIC8gMTA7CgkJCQlwcmluW2F1eHhdID0gYXU7CgkJCQlhdXh4Kys7CgkJCQkvLyBTZWd1bmRvIGRpZ2l0byA9CgkJCQlpbnQgdXggPSB2ZWNbaV0gLSAoYXUgKiAxMCk7CgkJCQlwcmluW2F1eHhdID0gdXg7CgkJCQlhdXh4Kys7CgkJCX0KCQkJZWxzZSBpZiAodmVjW2ldID49IDEwMCAmJiB2ZWNbaV0gPCAxMDAwKSB7CgkJCQkvLyBQcmltZWlybyBkaWdpdG8gLT0KCQkJCWludCBhdSA9IHZlY1tpXSAvIDEwMDsKCQkJCXByaW5bYXV4eF0gPSBhdTsKCQkJCWF1eHgrKzsKCQkJCS8vIFNlZ3VuZG8gZGlnaXRvID0KCQkJCWludCB1eCA9IHZlY1tpXSAtIChhdSAqIDEwMCk7CgkJCQlpbnQgYXV1ID0gdXggLyAxMDsKCQkJCXByaW5bYXV4eF0gPSBhdXU7CgkJCQlhdXh4Kys7CgkJCQkvLyBUZXJjZWlybyBkaWdpdG8gPQoJCQkJaW50IHV4eCA9IHV4IC0gKGF1dSAqIDEwKTsKCQkJCXByaW5bYXV4eF0gPSB1eHg7CgkJCQlhdXh4Kys7CgkJCX0KCQkJZWxzZSBpZiAodmVjW2ldID49IDEwMDAgJiYgdmVjW2ldIDwgMTAwMDApIHsKCQkJCS8vIFByaW1laXJvIERpZ2l0byA9IAoJCQkJaW50IGF1ID0gdmVjW2ldIC8gMTAwMDsKCQkJCXByaW5bYXV4eF0gPSBhdTsKCQkJCWF1eHgrKzsKCQkJCS8vIFNlZ3VuZG8gRGlnaXRvID0gCgkJCQlpbnQgdXggPSB2ZWNbaV0gLSAoYXUgKiAxMDAwKTsKCQkJCWludCBhdXUgPSB1eCAvIDEwMDsKCQkJCXByaW5bYXV4eF0gPSBhdXU7CgkJCQlhdXh4Kys7CgkJCQkvLyBUZXJjZWlybyBEaWdpdG8gPSAKCQkJCWludCB1eHggPSB1eCAtIChhdXUgKiAxMDApOwoJCQkJaW50IGFhdSA9IHV4eCAvIDEwOwoJCQkJcHJpblthdXh4XSA9IGFhdTsKCQkJCWF1eHgrKzsKCQkJCS8vIFF1YXJ0byBEaWdpdG8gPQoJCQkJaW50IHV1eCA9IHV4eCAtIChhYXUgKiAxMCk7CgkJCQlwcmluW2F1eHhdID0gdXV4OwoJCQkJYXV4eCsrOwoJCQl9CgkJCWVsc2UgaWYgKHZlY1tpXSA+PSAxMDAwMCAmJiB2ZWNbaV0gPCAxMDAwMDAwKSB7CgkJCQkvLyBQcmltZWlybyBEaWdpdG8gPQoJCQkJaW50IGF1ID0gdmVjW2ldIC8gMTAwMDA7CgkJCQlwcmluW2F1eHhdID0gYXU7CgkJCQlhdXh4Kys7CgkJCQkvLyBTZWd1bmRvIERpZ2l0byA9CgkJCQlpbnQgdXggPSB2ZWNbaV0gLSAoYXUgKiAxMDAwMCk7CgkJCQlpbnQgYXV1ID0gdXggLyAxMDAwOwoJCQkJcHJpblthdXh4XSA9IGF1dTsKCQkJCWF1eHgrKzsKCQkJCS8vIFRlcmNlaXJvIERpZ2l0byA9CgkJCQlpbnQgdXh4ID0gdXggLSAoYXV1ICogMTAwMCk7CgkJCQlpbnQgYWF1ID0gdXh4IC8gMTAwOwoJCQkJcHJpblthdXh4XSA9IGFhdTsKCQkJCWF1eHgrKzsKCQkJCS8vIFF1YXJ0byBEaWdpdG8gPQoJCQkJaW50IHV1eHggPSB1eHggLSAoYWF1ICogMTAwKTsKCQkJCWludCBhYXV1ID0gdXV4eCAvIDEwOwoJCQkJcHJpblthdXh4XSA9IGFhdXU7CgkJCQlhdXh4Kys7CgkJCQkvLyBRdWludG8gRGlnaXRvID0KCQkJCWludCB1dXh4eCA9IHV1eHggLSAoYWF1dSAqIDEwKTsKCQkJCXByaW5bYXV4eF0gPSB1dXh4eDsKCQkJCWF1eHgrKzsKCQkJfQoJCX0KCQljaGFyIHByaW5vW01BWF07CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBhdXh4OyBpKyspIHsKCQkJcHJpbm9baV0gPSBwcmluW2ldOwoJCX0KCQlpbnZlcnRlKHByaW5vLCBhdXh4KTsKCQlwcmludGYoIiVzJXNcbiIsIHByaW4sIHByaW5vKTsKCX0KCglyZXR1cm4gMDsKfQ==