1class Solution:2def profitableSchemes(self, n, minProfit, group, profit):34k = len(group)5arr = [6[[0 for _ in range(k + 1)] for _ in range(minProfit + 1)]7for _ in range(n + 1)8]910for i in range(n + 1):11arr[i][0][k] = 11213for j in range(k - 1, -1, -1):14for i in range(n, -1, -1):15for x in range(minProfit, -1, -1):1617arr[i][x][j] = arr[i][x][j + 1]18if i >= group[j]:19arr[i][x][j] += arr[i - group[j]][max(x - profit[j], 0)][j + 1]2021return arr[n][minProfit][0] % (10**9 + 7)