#define _crt_secure_no_warnings #ifndef _GLIBCXX_NO_ASSERT #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef __GXX_EXPERIMENTAL_CXX0X__ #include #include #include #include #include #include #include #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef __GXX_EXPERIMENTAL_CXX0X__ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #endif using namespace std; int main() { string N, M; cin >> N; cin >> M; int c = *(N.rbegin()) - '0'; auto a = M.rbegin(); int b = *a-'0'; a++; if (a != M.rend()) { b += (*a - '0') * 10; } if (b == 0&&a==M.rend()) { cout << 1 << endl; return 0; } b += 100; if (c == 0) { cout << 0 << endl; return 0; } cout << (int)pow(c, (b-1)%4+1) % 10 << endl; return 0; }