#include #include using namespace std; const int maxn = 5; int arr[maxn]; int brr[maxn]; int cnt; void ex_gcd(int a, int b, int &d, int &x, int &y) { if(b == 0) { x = 1; y = 0; d = a; return; } else { ex_gcd(b, a%b, d, x, y); int tmp = x; x = y; y = tmp - y*(a/b); } } int intChina(int r) { cnt = 1; int cnt1, x0, y0, d, ans = 0; for(int i = 1; i <= r; ++i) cnt *= brr[i]; for(int i = 1; i <= r; ++i) { cnt1 = cnt/brr[i]; ex_gcd(cnt1, brr[i], d, x0, y0); ans = (ans + cnt1*x0*arr[i])%cnt; } if(ans < 0) ans += cnt; return ans; } int main() { int ncs = 0; int a, b, c, d; getchar(); while(scanf(\"%d %d %d %d\", &a, &b, &c, &d) != EOF) { ncs ++; if(a == -1 && b == -1 && c == -1 && d == -1) break; arr[1] = a, arr[2] = b, arr[3] = c; brr[1] = 23, brr[2] = 28, brr[3] = 33; int ans = intChina(3); if(a == b == c == d) printf("Case %d: the next triple peak occurs in 21252 days.\n", ncs); else { while(ans < d) ans += cnt; printf(\"Case %d: the next triple peak occurs in %d days.\n", ncs, ans-d); } } return 0; }