#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #pragma warning(disable:4996) //#define ATCODER #ifdef ATCODER #include #endif typedef long long ll; typedef unsigned long long ull; #define LINF 9223300000000000000 #define LINF2 1223300000000000000 #define LINF3 1000000000000 #define INF 2140000000 //const long long MOD = 1000000007; const long long MOD = 998244353; using namespace std; #ifdef ATCODER using namespace atcoder; #endif void solve() { vector a(1005); ll K; scanf("%d%d%d%lld", &a[0], &a[1], &a[2], &K); K--; a[0] %= 10; a[1] %= 10; a[2] %= 10; int id0 = -1, id1 = -1; vector f(1000, -1); for (int i = 0; i <= 1000; i++) { int tmp = a[i] * 100 + a[i + 1] * 10 + a[i + 2]; a[i + 3] = (a[i] + a[i + 1] + a[i + 2]) % 10; if (f[tmp] < 0) { f[tmp] = i; } else { id0 = f[tmp]; id1 = i; break; } } assert(id0 >= 0 && id1 >= 0); if (K < id1) { printf("%d\n", a[(int)K]); } else { int m = id1 - id0; int d = (K - id1) % m; printf("%d\n", a[id0 + d]); } return; } int main() { #if 1 solve(); #else int T, t; scanf("%d", &T); for (t = 0; t < T; t++) { //printf("Case #%d: ", t + 1); solve(); } #endif return 0; }