#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define endl '\n' #define all(v) (v).begin(), (v).end() #define uniq(v) (v).erase(unique((v).begin(), (v).end()), (v).end()) typedef long long ll; typedef pair P; typedef unsigned int uint; const int inf = 1000000009; bool is_prime[10010]; vector primes; int memo[10010]; void sieve(int n) { memset(is_prime, true, sizeof(is_prime)); is_prime[0] = is_prime[1] = false; for (int i = 2; i <= n; i++) { if (is_prime[i]) { primes.push_back(i); for (int j = i + i; j <= n; j += i) is_prime[j] = false; } } } bool solve(int n) { if (n < 2) return true; if (memo[n] == 0) { int idx = 0; bool win = false; while (idx < primes.size() && primes[idx] <= n) { win = (win || !solve(n-primes[idx])); idx++; } memo[n] = (win ? 1 : -1); } return memo[n] > 0; } int main() { int n; scanf("%d", &n); sieve(n); printf("%s\n", solve(n) ? "Win" : "Lose"); }