#include <bits/stdc++.h>
using namespace std;
const long long MAXn = 2005;
const long long MOD = 1000000007;
const long long INF = (long long)1e18;
long long dp[105][MAXn], ok[105][MAXn];
long long t[105], d[105], p[105], id[105];
vector<int> ans;
bool cmp(long long x, long long y) { return d[x] < d[y]; }
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  ;
  long long n;
  cin >> n;
  for (long long i = 1; i <= n; i++) cin >> t[i] >> d[i] >> p[i];
  for (long long i = 1; i <= n; i++) id[i] = i;
  sort(id + 1, id + n + 1, cmp);
  ;
  for (long long i = 1; i <= n; i++) {
    long long cur = id[i];
    for (int j = 0; j < MAXn; j++) {
      dp[i][j] = dp[i - 1][j];
      if (j < d[cur] && j >= t[cur] &&
          dp[i][j] < dp[i - 1][j - t[cur]] + p[cur]) {
        dp[i][j] = dp[i - 1][j - t[cur]] + p[cur];
        ok[i][j] = 1;
        ;
      }
    }
  }
  long long idx = max_element(dp[n], dp[n] + MAXn) - dp[n];
  cout << dp[n][idx] << '\n';
  ;
  for (int i = n; i >= 1; i--) {
    long long cur = id[i];
    if (ok[i][idx]) {
      ans.push_back(cur);
      idx -= t[cur];
    }
  }
  cout << (int)ans.size() << '\n';
  for (int i = (int)ans.size() - 1; i >= 0; i--) {
    cout << ans[i] << ' ';
  }
}
