#include #include #include using namespace std; typedef long long ll; map prime_factor(ll n){ //素因数分解 map table; for(int i=2;i*i<=n;i++){ while(n%i==0){ table[i]++; n/=i; } } if(n!=1) table[n]=1; return table;// key->素因数, value->べき乗 } bool is_prime(int n){ //素数判定 for(int i=2;i*i<=n;i++){ if(n%i==0) return true; } return false; } vector prime_table(int n){ //素数全列挙 vector prime(n+1,true); prime[0]=prime[1]=false; for(int i=2;i*i<=n;i++){ if(prime[i]!=true) continue; for(int j=2*i;j<=n;j+=i){ prime[j]=false; } } return prime; //i番目の要素が素数の場合trueを返す } vector p; int main(){ int N; cin >> N; vector p_table=prime_table(N); for(int i=2;i<=N;i++){ if(p_table[i]==true){ p.push_back(i); } } bool dp[N+1]; for(int i=0;i<=N;i++) dp[i]=false; dp[0]=true; dp[1]=true; for(int i=2;i<=N;i++){ for(int j=0;j=0){ if(!dp[i-p[j]]){ dp[i]=true; } } } } if(dp[N]==true) cout << "Win" << endl; else cout << "Lose" << endl; }