#include "bits/stdc++.h" using namespace std; #define REP(i, n) for(int i=0; i<(n); i++) #define RREP(i, n) for(int i=(n-1); i>=0; i--) #define MAX 111111 #define ALL(a) (a).begin(),(a).end() #define CONTAIN(a, b) find(ALL(a), (b)) != (a).end() int N; vector< pair > > dp(MAX); signed main() { cin >> N; vector V(N); REP(i,N) cin >> V[i]; int maxv = 0; dp[0].first = true; REP(i,N) { int v = V[i]; RREP(j,MAX) { if (i > 0 && CONTAIN(dp[j].second, i-1)) continue; if (!dp[j].first) continue; if (dp[j+v].first) { vector w = dp[j+v].second; if (w[w.size()-1] < i) continue; } dp[j+v].second = dp[j].second; dp[j+v].second.push_back(i); dp[j+v].first = true; maxv = max(maxv, j+v); } } cout << maxv << endl; for (auto&& a : dp[maxv].second) { cout << a+1 << " "; } cout << endl; return 0; }