import java.util.*; public class Main { static final int MOD = 1000000007; public static void main (String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int s = sc.nextInt(); int kk = sc.nextInt(); int min = n * (n - 1) * kk / 2; if (s < min) { System.out.println(0); return; } s -= min; HashMap map = new HashMap<>(); for (int i = 0; i * n <= s; i++) { map.put(i * n, 1); } for (int i = 2; i <= n; i++) { HashMap next = new HashMap<>(); for (Map.Entry entry : map.entrySet()) { int key = entry.getKey(); int value = entry.getValue(); for (int j = 0; key + j * (n - i + 1) <= s; j++) { int nkey = key + j * (n - i + 1); if (next.containsKey(nkey)) { next.put(nkey, (next.get(nkey) + value) % MOD); } else { next.put(nkey, value); } } } map = next; } System.out.println(map.get(s)); } }