#include <bits/stdc++.h>
using namespace std;
int n;
int a[30];
int dp[(1 << 23) + 10];
bool is_ok(int st, int id) {
  int i, j;
  for (i = 0; i < id; i++) {
    if (st & (1 << (i))) {
      for (j = 0; j < id; j++) {
        if (st & (1 << (j))) {
          if (a[i] + a[j] == a[id]) {
            return true;
          }
        }
      }
    }
  }
  return false;
}
int calc(int x) {
  int i = 0;
  while (x) {
    i += x % 2;
    x = x >> 1;
  }
  return i;
}
int main() {
  int i, j, k;
  cin >> n;
  for (i = 0; i < n; i++) {
    cin >> a[i];
  }
  dp[1] = 1;
  for (i = 1; i < n; i++) {
    for (j = 1 << (i - 1); j < (1 << i); j++) {
      if (dp[j]) {
        if (is_ok(j, i)) {
          int u = j | (1 << i);
          dp[u] = 1;
          for (k = 0; k < i; k++) {
            if (j & (1 << k)) {
              dp[u ^ (1 << k)] = 1;
            }
          }
        }
      }
    }
  }
  int ans = 100;
  for (i = 1 << (n - 1); i < (1 << n); i++) {
    if (dp[i]) {
      ans = min(ans, calc(i));
    }
  }
  if (ans == 100) {
    puts("-1");
  } else {
    cout << ans << endl;
  }
}
