using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); static int[][] NArr(long n) => Enumerable.Repeat(0, (int)n).Select(_ => NList).ToArray(); static string[] SList(long n) => Enumerable.Repeat(0, (int)n).Select(_ => ReadLine()).ToArray(); public static void Main() { Solve(); } static void Solve() { var c = NList; var (n, x, y) = (c[0], c[1], c[2]); var map = NArr(n); var dp = new long[x + 1][]; for (var i = 0; i < dp.Length; ++i) dp[i] = Enumerable.Repeat(long.MinValue, y + 1).ToArray(); dp[0][0] = 0; for (var k = 0; k < n; ++k) for (var i = x; i >= 0; --i) for (var j = y; j >= 0; --j) { var ni = i + map[k][0]; var nj = j + map[k][1]; if (ni <= x && nj <= y) dp[ni][nj] = Math.Max(dp[ni][nj], dp[i][j] + map[k][2]); } var ans = 0L; foreach (var di in dp) foreach (var dij in di) ans = Math.Max(ans, dij); WriteLine(ans); } }