#include // integer using i8 = std::int8_t; using i16 = std::int16_t; using i32 = std::int32_t; using i64 = std::int64_t; using i128 = __int128_t; // unsigned integer using u8 = std::uint8_t; using u16 = std::uint16_t; using u32 = std::uint32_t; using u64 = std::uint64_t; using u128 = __uint128_t; // floating using f32 = float; using f64 = double; using f80 = long double; // vector using vi8 = std::vector; using vi16 = std::vector; using vi32 = std::vector; using vi64 = std::vector; using vi128 = std::vector; using vu8 = std::vector; using vu16 = std::vector; using vu32 = std::vector; using vu64 = std::vector; using vu128 = std::vector; using vf32 = std::vector; using vf64 = std::vector; using vf80 = std::vector; // vector vector using vvi8 = std::vector; using vvi16 = std::vector; using vvi32 = std::vector; using vvi64 = std::vector; using vvi128 = std::vector; using vvu8 = std::vector; using vvu16 = std::vector; using vvu32 = std::vector; using vvu64 = std::vector; using vvu128 = std::vector; using vvf32 = std::vector; using vvf64 = std::vector; using vvf80 = std::vector; // pair using pi8 = std::pair; using pi16 = std::pair; using pi32 = std::pair; using pi64 = std::pair; using pi128 = std::pair; using pu8 = std::pair; using pu16 = std::pair; using pu32 = std::pair; using pu64 = std::pair; using pu128 = std::pair; using pf32 = std::pair; using pf64 = std::pair; using pf80 = std::pair; // vector pair using vpi8 = std::vector; using vpi16 = std::vector; using vpi32 = std::vector; using vpi64 = std::vector; using vpi128 = std::vector; using vpu8 = std::vector; using vpu16 = std::vector; using vpu32 = std::vector; using vpu64 = std::vector; using vpu128 = std::vector; using vpf32 = std::vector; using vpf64 = std::vector; using vpf80 = std::vector; // stack using si8 = std::stack; using si16 = std::stack; using si32 = std::stack; using si64 = std::stack; using si128 = std::stack; using su8 = std::stack; using su16 = std::stack; using su32 = std::stack; using su64 = std::stack; using su128 = std::stack; using sf32 = std::stack; using sf64 = std::stack; using sf80 = std::stack; // queue using qi8 = std::queue; using qi16 = std::queue; using qi32 = std::queue; using qi64 = std::queue; using qi128 = std::queue; using qu8 = std::queue; using qu16 = std::queue; using qu32 = std::queue; using qu64 = std::queue; using qu128 = std::queue; using qf32 = std::queue; using qf64 = std::queue; using qf80 = std::queue; // string using vs = std::vector; using vvs = std::vector; // bool using vb = std::vector; using vvb = std::vector; constexpr i32 LIM_SIEVE = 500'000'010; std::bitset<((LIM_SIEVE + 1) >> 1)> is_prime; void sieve_of_atkin(i32 lim) { assert(lim <= LIM_SIEVE); lim = (lim + 1) >> 1; for (i32 y = 1, m; (m = (y * y + 36) >> 1) < lim; y += 2) if (y % 3 != 0) for (i32 k = 0; m < lim; m += (k += 36) + 18) is_prime.flip(m); for (i32 x = 1, m; (m = (4 * x * x + 1) >> 1) < lim; ++x) if (x % 3 != 0) for (i32 k = 0; m < lim; m += (k += 4)) is_prime.flip(m); for (i32 y = 2, m; (m = (y * y + 3) >> 1) < lim; y += 2) if (y % 3 != 0) for (i32 k = 0; m < lim; m += (k += 12)) is_prime.flip(m); for (i32 y = 1, m; (m = ((2 * y + 6) * y + 3) >> 1) < lim; ++y) if (y % 3 != 0) for (i32 k = 6 * y; m < lim; m += (k += 12)) is_prime.flip(m); for (i32 p = 5, p2; (p2 = p * p) >> 1 < lim; p += 2) if (is_prime[p >> 1]) for (i32 m = p2 >> 1; m < lim; m += p2) is_prime.reset(m); if (1 < lim) is_prime.set(1); } i32 anss_len; i32 anss[1'000'010]; i32 enumerate_primes(i32 n, i32 a = 1, i32 b = 0) { sieve_of_atkin(n); i32 pi = 0; if (2 <= n) if (pi++ % a == b) anss[anss_len++] = 2; for (i32 i = 3; i <= n; i += 2) if (is_prime[i >> 1]) if (pi++ % a == b) anss[anss_len++] = i; return pi; } int main() { bool dp[10010]; dp[0] = true; dp[1] = true; enumerate_primes(10100); for (i64 i = 4; i <= 10000; i++) { for (i32 j = 0; j < anss_len; j++) { i32 e = anss[j]; if (i - e < 0) break; dp[i] |= !dp[i - e]; } } i64 N; scanf("%ld", &N); if (dp[N]) printf("Win\n"); else printf("Lose\n"); return 0; }