
    Design an algorithm to determine the number of possible learning paths through n sequential educational stages, where each stage's difficulty level must be at least double the previous stage's level and cannot exceed the maximum difficulty threshold m, ensuring appropriate skill progression. Each stage's difficulty must be represented by a positive integer, and the sequence must maintain steady but manageable difficulty increases between stages.
    

    
def get_total_number_of_sequences(m, n):
    """
    Design an algorithm to determine the number of possible learning paths through n sequential educational stages, where each stage's difficulty level must be at least double the previous stage's level and cannot exceed the maximum difficulty threshold m, ensuring appropriate skill progression. Each stage's difficulty must be represented by a positive integer, and the sequence must maintain steady but manageable difficulty increases between stages.
    

    """
def get_total_number_of_sequences(m, n):
    """
    Design an algorithm to determine the number of possible learning paths through n sequential educational stages, where each stage's difficulty level must be at least double the previous stage's level and cannot exceed the maximum difficulty threshold m, ensuring appropriate skill progression. Each stage's difficulty must be represented by a positive integer, and the sequence must maintain steady but manageable difficulty increases between stages.
    

    """
    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]