#include #define MAX 10000 void make_prime_list(); int judge(int); int memo[MAX + 1], table[MAX + 1], prime[MAX], p_cnt; int main(void) { int n; scanf("%d", &n); make_prime_list(); memo[0] = 1; memo[1] = 1; printf("%s\n", judge(n) == 1 ? "Win" : "Lose"); return 0; } void make_prime_list() { int i; for(i = 2; i <= MAX; i++) { if(table[i] == 0) { prime[p_cnt] = i; p_cnt++; int multi = 2 * i; while(multi <= MAX) { table[multi] = 1; multi += i; } } } return; } int judge(int n) { if(memo[n]) { return memo[n]; } int i = p_cnt - 1; // (n-primeが)小さい方から回さないと遅い&スタックが死ぬ while(n < prime[i]) { i--; } while(0 <= i) { if(judge(n - prime[i]) == -1) { memo[n] = 1; return memo[n]; } i--; } memo[n] = -1; return memo[n]; }