Question: 
Write a function to find the number of possible sequences of length n such that each of the next element is greater than or equal to twice of the previous element but less than or equal to m.


Model's Code:
def get_total_number_of_sequences(n, m):
    dp = [[0] * (m + 1) for _ in range(n + 1)]
    
    for j in range(1, m + 1):
        dp[1][j] = 1
        
    for i in range(2, n + 1):
        for j in range(1, m + 1):
            dp[i][j] = dp[i][j - 1]
            if j // 2 >= 1:
                dp[i][j] += dp[i - 1][j // 2]

    return sum(dp[n][j] for j in range(1, m + 1))



Sample Correct Code:
def get_total_number_of_sequences(m,n): 
	T=[[0 for i in range(n+1)] for i in range(m+1)] 
	for i in range(m+1): 
		for j in range(n+1): 
			if i==0 or j==0: 
				T[i][j]=0
			elif i<j: 
				T[i][j]=0
			elif j==1: 
				T[i][j]=i 
			else: 
				T[i][j]=T[i-1][j]+T[i//2][j-1] 
	return T[m][n]


Asserts:
assert get_total_number_of_sequences(10, 4) == 4
assert get_total_number_of_sequences(5, 2) == 6
assert get_total_number_of_sequences(16, 3) == 84


Tests:
Test 1 of 3: FAIL: AssertionError()

Test 239 of 974: 172/239 (71.96652719665272%): failed