import std.stdio, std.string, std.conv;
import std.algorithm, std.array;
auto solve(string s_) {
    immutable P = "Possible";
    immutable I = "Impossible";
    immutable N = s_.to!int();
    immutable a = readln.split.map!(to!int).array();
    auto c = new int[N];
    foreach(v;a) {
        if(v<1 || N<=v) return I;
        ++c[v];
    }
    int n=0, d, r;
    foreach(int i,v;c) {
        if(n==0) {
            if(v>2) return I;
            d=i-(v-1);
            r=2;
        }
        else {
            if(v<r) return I;
            if(--d<0) return I;
            r=v;
        }
        n+=v;
        if(n==N && d==0) return P;
    }
    return I;
}
void main(){ for(string s; (s=readln.chomp()).length;) writeln(solve(s)); }