#include <bits/stdc++.h>
using namespace std;
#define eb emplace_back
using ll = long long;
const int inf = 1e9+5;
const ll INF = 1e18+5;
const int nax = 2e5+500;
void out(vector<int> &a) {
	cout << a.size();
	for(int z: a) {
		cout <<" "<< z;
	}
	cout <<"\n";
}
int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	int n;
	cin >> n;
	int a[n];
	for(int i=0;i<n;i++) cin >> a[i];
	int base = (1 << min(n,8)) - 1;
	vector<vector<int>> f(200, vector<int> (0));
	for(int i=1;i<=base;i++) {
		int ga = 0;
		vector<int> ans;
		for(int j=0;j<min(n,8);j++) {
			if(i & (1 << j)) {
				ga += a[j];
				ga %= 200;
				ans.eb(j+1);
			}
		}
		if(f[ga].size() != 0) {
			cout << "Yes\n";
			out(f[ga]);
			out(ans);
			return 0;
		} else { 
			f[ga] = ans;
		}

	}
	cout <<"No\n";


	
}

#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<map>
#include<cmath>
#include<queue>
#include<stack>
#include<deque>
#include<list>
#include<bitset>
#include<sstream>

using namespace std;
using ll = long long;
const ll MOD = 1e9+7;
const ll INF = 1e18;
#define REP(i, n) for(int i = 0; i < n; i++)
#define endl "\n"
using Graph = vector<vector<int>>;

int main(){
    string s;
    cin>>s;
    string ans;
    for(int i=0;i<3;i++){
        ans += s[(i+1)%3];
    };
    cout<<ans<<endl;
}