Count the number of combinations that make up a given amount using unlimited coins. Build a 2-D dp table where dp[i][a] = ways to make amount a using coins[i:].
2-D DP (Bottom-Up)
dp[i][a] = number of ways to make amount a using only coins[i:]. Each cell either skips the current coin (take from row below) or uses it (take from same row, a−coin columns back).