#include <cstdio>
#include <cstring>
void div(char A[], int B) {
int i, t = 0;
for (i = A[0]; i > 0; i--, t %= B)
A[i] = (t = t * 10 + A[i]) / B;
for (; A[0] > 1 && !A[A[0]]; A[0]--);
}
int mod(char A[], int B) {
int i, t = 0;
for (i = A[0]; i > 0; i--)
t = (t * 10 + A[i]) % B;
return t;
}
const int PreDef[] = {0, 1, 5, 12, 18, 23, 29, 32, 38, 47, 47, 48, 54, 57, 63, 68, 74, 81, 85, 94};
const int NMAX = 128;
char Tmp[NMAX], Num[NMAX];
int main() {
freopen("cifra.in", "r", stdin);
freopen("cifra.out", "w", stdout);
int t, i, aux, ans;
for (scanf("%d", &t); t > 0; -- t) {
scanf("%s", Num + 1);
Num[0] = strlen(Num + 1);
for (i = 1; i <= Num[0]; ++ i)
Num[i] = Num[i] - '0';
for (i = 1; i <= Num[0] / 2; ++ i) {
aux = Num[Num[0] - i + 1];
Num[Num[0] - i + 1] = Num[i];
Num[i] = aux;
}
memmove(Tmp, Num, sizeof(Num));
div(Num, 20);
ans = (4 * Num[1]) % 10;
aux = mod(Tmp, 20) % 10;
ans += PreDef[aux] % 10;
printf("%d\n", ans % 10);
}
return 0;
}