You are given an array of `events`

where `events[i] = [startDay`

. The _{i}, endDay_{i}, value_{i}]`i`

event starts at ^{th}`startDay`

_{i}_{ }and ends at `endDay`

, and if you attend this event, you will receive a value of _{i}`value`

. You are also given an integer _{i}`k`

which represents the maximum number of events you can attend.

You can only attend one event at a time. If you choose to attend an event, you must attend the **entire** event. Note that the end day is **inclusive**: that is, you cannot attend two events where one of them starts and the other ends on the same day.

Return *the maximum sum of values that you can receive by attending events.*

**Example 1:**

Input:events = [[1,2,4],[3,4,3],[2,3,1]], k = 2Output:7Explanation:Choose the green events, 0 and 1 (0-indexed) for a total value of 4 + 3 = 7.

**Example 2:**

Input:events = [[1,2,4],[3,4,3],[2,3,10]], k = 2Output:10Explanation:Choose event 2 for a total value of 10. Notice that you cannot attend any other event as they overlap, and that you donothave to attend k events.

**Example 3:**

Input:events = [[1,1,1],[2,2,2],[3,3,3],[4,4,4]], k = 3Output:9Explanation:Although the events do not overlap, you can only attend 3 events. Pick the highest valued three.

**Constraints:**

`1 <= k <= events.length`

`1 <= k * events.length <= 10`

^{6}`1 <= startDay`

_{i}<= endDay_{i}<= 10^{9}`1 <= value`

_{i}<= 10^{6}

class Solution {
public int maxValue(int[][] events, int k) {
}
}