#include <bits/stdc++.h>
using namespace std;

int main(){
    int mod = 200;
    int n; cin >> n;
    vector<int> a(n);
    for(int i = 0; i < n; i++){
        int ai; cin >> ai;
        ai %= mod;
        a[i] = ai;
    }

    vector<vector<uint>> b(200);
    n = min(8,n);
    for(uint i = 1; i < (1<<n); i++){
        int ai = 0;
        for(int j = 0; j < n; j++){
            if(i>>j&1) ai = (ai+a[j])%200;
        }
        b[ai].push_back(i);
    }

    bool bl = false;
    int ansi;
    for(int i = 0; i < 200; i++){
        if(b[i].size() > 1){
            bl = true;
            ansi = i;
            break;
        }
    }
    if(bl){
        cout << "Yes" << endl;
        vector<vector<int>> ans(2);
        for(int i = 0; i < 2; i++){
            uint j = b[ansi][i];
            for(int k = 0; k < n; k++){
                if(j>>k&1) ans[i].push_back(k+1);
            }
        }
        for(vector<int> an : ans){
            cout << an.size();
            for(int ani : an) cout << " " << ani;
            cout << endl;
        }
    }
    else cout << "No" << endl;

    /*for(auto bi : b){
        for(auto bij : bi){
            cout << bij << ",";
        }
        cout << endl;
    }*/
    /*auto start = chrono::system_clock::now();
    auto end = chrono::system_clock::now();
    auto dur = end-start;
    auto msec = chrono::duration_cast<chrono::milliseconds>(dur).count();
    cout << msec << "[ms]" << endl;*/
}
#include <bits/stdc++.h>
using namespace std;

#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>


#define ll long long
#define ff first
#define ss second
#define pi pair<int, int>

const int MX=300000;
const ll mod=1e9+7;

int dp[100];

int main()
{
    ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);

    int n; cin>>n;

    set<int>st;
    set<int>::iterator it;

    for(int i=1; i<=min(n-2, 1666); i++) st.insert(6*i);

    for(int i=1; ; i++)
    {
        if(st.size()==n-1 || 10*i>10000) break;
        st.insert(10*i);
    }

    for(int i=1; ; i++)
    {
        if(st.size()==n) break;
        st.insert(15*i);
    }

    for(it=st.begin(); it!=st.end(); it++) cout<<*(it)<<' ';
    cout<<endl;

    return 0;
}
