#include <bits/stdc++.h>
using namespace std;
#define REP(i, n) for(int i=0; i<(int)(n); i++)

int main(){
int N, ans=0; cin >> N; int A[N];
REP(i, N){ cin >> A[i]; A[i]=A[i]%200; }
int M=min(8, N), R[200]={}; 

vector<int> X={}, Y={};
REP(i, 1<<M){ 
if(i==0){ continue; }
int k=i, d=0, n=0; Y={};
while(k){
  if(k%2==1){ n=(n+A[d])%200; Y.push_back(d+1); }
  k/=2; d++;
}
if(R[n]){ 
  cout << "Yes\n";
  int l=R[n], g=0;
  while(l){ if(l%2==1){ X.push_back(g+1); } l/=2; g++; }
  cout << X.size();
  REP(j, X.size()){ cout << " " << X[j]; }
  cout << "\n" << Y.size();
  REP(j, Y.size()){ cout << " " << Y[j]; }
  cout << "\n";
  return 0;
}else{ R[n]=i; }
}
cout << "No\n";
}

#include<bits/stdc++.h>
#include<string>

using namespace std;

#define ll long long int
#define ld long double
#define pb push_back
#define all(v) v.begin(),v.end()
#define sz(x) ((int)(x).size())
#define fi first
#define se second
#define deb(x) cout<< #x << '=' << x <<endl
#define MOD 1000000007

ll p(ll a , ll n){
    if(n == 0){
        return 1;
    }
    ll res = p(a*a , n / 2);
    if(n % 2){
        res *= a;
    }
    return res;
}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    ll n;
    cin>>n;
    ll ans = 0;
    set<ll> s;
    for(ll i = 2; i <= 2e5; i++){
        for(ll j = 2; j <= 40; j++){
            ll c = p(i , j);
            if(c > n){
                break;
            }
            s.insert(c);
        }
    }
    ans = n - (sz(s));
    cout<<ans<<"\n";
    return 0;
}