#include <bits/stdc++.h>
using namespace std;
class Point {
 public:
  double x, y;
  Point(double x = 0, double y = 0) : x(x), y(y) {}
  Point operator+(Point p) { return Point(x + p.x, y + p.y); }
  Point operator-(Point p) { return Point(x - p.x, y - p.y); }
  Point operator*(double a) { return Point(x * a, y * a); }
  Point operator/(double a) { return Point(x / a, y / a); }
  double absv() { return sqrt(norm()); }
  double norm() { return x * x + y * y; }
  bool operator<(const Point &p) const { return x != p.x ? x < p.x : y < p.y; }
  bool operator==(const Point &p) const {
    return fabs(x - p.x) < (1e-10) && fabs(y - p.y) < (1e-10);
  }
};
struct Segment {
  Point p1, p2;
};
double hen(Point a) {
  if (fabs(a.x) < (1e-10) && a.y > 0)
    return acos(0);
  else if (fabs(a.x) < (1e-10) && a.y < 0)
    return 3 * acos(0);
  else if (fabs(a.y) < (1e-10) && a.x < 0)
    return 2 * acos(0);
  else if (fabs(a.y) < (1e-10) && a.x > 0)
    return 0.0;
  else if (a.y > 0)
    return acos(a.x / a.absv());
  else
    return 2 * acos(0) + acos(-a.x / a.absv());
}
double dot(Point a, Point b) { return a.x * b.x + a.y * b.y; }
double cross(Point a, Point b) { return a.x * b.y - a.y * b.x; }
long long dx[4] = {1, 0, -1, 0};
long long dy[4] = {0, 1, 0, -1};
signed main() {
  long long n;
  cin >> n;
  long long a[110];
  for (long long i = 0; i < n; i++) cin >> a[i];
  sort(a, a + n);
  if (2 * a[0] < a[n - 1]) {
    cout << "Impossible" << endl;
    return 0;
  }
  if (a[n - 1] >= n) {
    cout << "Impossible" << endl;
    return 0;
  }
  if (n == 2) {
    if (a[0] == 1 && a[1] == 1) {
      cout << "Possible" << endl;
    } else {
      cout << "Impossible" << endl;
    }
    return 0;
  }
  if (a[1] == 1) {
    cout << "Impossible" << endl;
    return 0;
  }
  if (a[0] == 1) {
    long long b = 0;
    for (long long i = 1; i < n; i++)
      if (a[i] != 2) b++;
    if (b == 0) {
      cout << "Possible" << endl;
    } else {
      cout << "Impossible" << endl;
    }
    return 0;
  }
  if (a[n - 1] == n - 1) {
    long long b = 0;
    for (long long i = n - 1; i > 0; i--) {
      if (a[i] != n - 1 - ((n - 1) - i) / 2) b++;
    }
    if (b == 0) {
      cout << "Possible" << endl;
    } else {
      cout << "Impossible" << endl;
    }
    return 0;
  }
  if (a[0] > n / 2) {
    cout << "Impossible" << endl;
    return 0;
  }
  cout << "Possibｌe" << endl;
  return 0;
}
