/*------------------------------------------*/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define REP(i,n) for(int (i)=0;(i)<(n);(i)++) #define FOR(i,a,b) for(int (i)=(a);(i)<(b);(i)++) #define RREP(i,a) for(int (i)=(a)-1;(i)>=0;(i)--) #define FORR(i,a,b) for(int (i)=(a)-1;(i)>=(b);(i)--) #define MOD 1e9+7 #define PI acos(-1.0) #define DEBUG(C) cout< dp(10001,false); //dp[i]=trueならば重さiの組み合わせ可能 bool solve(int target,vector a){ dp[0]=true; REP(i,a.size()){ RREP(j,10000-a[i]) if(dp[j]) dp[j+a[i]]=true; } if(dp[target]) return true; else return false; } int main(){ int N; cin>>N; vector A(N); int target=0; string output; REP(i,N) {cin>>A[i]; target+=A[i];} if(target&1) output="impossible"; else{ sort(A.begin(),A.end()); output=solve(target/2,A) ? "possible" : "impossible"; } cout<