#include <iostream>
#include <math.h>
#include <cstdlib>
#include <stdlib.h>
using namespace std;
int obl (int, long int);
int main()
{
int D;
//cout<<"Podaj liczbe przypadkow do rozwazenia(1-10): ";
cin>>D;
long int a[D],b[D],c[D]; // a[D] tablica wprowadzonych liczb które mają zostać spotęgowane b[D] ich wykładniki
for (int i=0;i<D;i++) // pętla pobiera wszyskie zestawy liczb i wylicza ostatnią cyfre
{
//cout<<"Podaj liczbe ktora ma zostac spotegowana oraz jej wykladnik oddzielajac spacja: "<<endl;
cin>>a[i];
cin>>b[i];
int d = a[i]%10;
c[i]=obl(d,b[i]);
}
for (int i=0;i<D;i++) {cout<<c[i]<<endl;} // pętla wypisuje wszystkie wyniki tak jak miało byc w zadaniu
return 0;
}
int obl(int reszta, long int wykladnik)
{
int wynik=0;
switch (reszta){
case 0: wynik=reszta; break;
case 1: wynik=reszta; break;
case 2:
{
if (wykladnik%4==1) wynik=2;
else if (wykladnik%4==2) wynik=4;
else if (wykladnik%4==3) wynik=8;
else if (wykladnik%4==0) wynik=6;
break;
}
case 3:
{
if (wykladnik%4==1) wynik=3;
else if (wykladnik%4==2) wynik=9;
else if (wykladnik%4==3) wynik=7;
else if (wykladnik%4==0) wynik=1;
break;
}
case 4:
{
if (wykladnik%2==0)
wynik=4;
else
wynik=6;
break;
}
case 5: wynik=reszta; break;
case 6: wynik=reszta; break;
case 7:
{
if (wykladnik%4==1) wynik=7;
else if (wykladnik%4==2) wynik=9;
else if (wykladnik%4==3) wynik=3;
else if (wykladnik%4==0) wynik=1;
break;
}
case 8:
{
if (wykladnik%4==1) wynik=8;
else if (wykladnik%4==2) wynik=4;
else if (wykladnik%4==3) wynik=2;
else if (wykladnik%4==0) wynik=6;
break;
}
case 9:
{
if (wykladnik%2==0)
wynik=9;
else
wynik=1;
break;
}
}
return (wynik);
}