------
## 最终结论
```python
def dieSimulator(n, rollMax):
    MOD = 10**9 + 7
    dp = [[[0] * 16 for _ in range(6)] for _ in range(n + 1)]
    
    # Initial condition: no rolls yet
    for j in range(6):
        dp[0][j][0] = 1
    
    # Fill the dp table
    for i in range(1, n + 1):
        for j in range(6):  # last number rolled
            for k in range(1, rollMax[j] + 1):  # count of last number rolled
                if k == 1:
                    # If the last number is new (not repeated)
                    for m in range(6):
                        if m != j:
                            for x in range(rollMax[m]):
                                dp[i][j][k] = (dp[i][j][k] + dp[i - 1][m][x]) % MOD
                else:
                    # If the last number is repeated
                    dp[i][j][k] = dp[i - 1][j][k - 1]
    
    return sum(dp[n][j][k] for j in range(6) for k in range(1, rollMax[j] + 1)) % MOD
```