#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i,n) for (int i = 0; i < (n); ++i) using namespace atcoder; using namespace std; typedef long long int ll; typedef modint998244353 mint; ll gcd(ll a, ll b) { if (a < b)swap(a, b); if (b == 0)return a; return gcd(b, a % b); } int lcm(int a, int b) { return a * b / gcd(a, b); } /* 解説動画参考 解説ブログ参考 */ int main() { int Q; Q = 1; //cin >> Q; while (Q--) { string a, b; cin >> a >> b; int t = a.back() - '0'; int x = b.back() - '0'; if (b.size() > 1)x += (b[b.size()-2] - '0') * 10; if (b=="0") { cout << 1; return 0; } x %= 4; if (t == 0 || t == 1 || t == 5 || t == 6) { cout << t; return 0; } if (t == 2) { int d[5] = { 6,2,4,8 }; cout << d[x]; return 0; } if (t == 4) { int d[5] = { 6,4,6,4 }; cout << d[x]; return 0; } if (t == 3) { int d[5] = { 1,3,9,7 }; cout << d[x]; return 0; } if (t == 7) { int d[5] = { 1,7,9,3 }; cout << d[x]; return 0; } if(t==8) { int d[5] = { 6,8,4,2 }; cout << d[x]; return 0; } if (t == 9) { int d[5] = { 1,9,1,9 }; cout << d[x]; return 0; } } return 0; }