
results = {}

def numRoutes(w, h):
	if (w, h) in results:
		return results[(w, h)]
	if w == 0 or h == 0:
		results[(w, h)] = 1
		return( 1 )
	result = numRoutes(w - 1, h) + numRoutes(w, h - 1)
	results[(w, h)] = result
	return result

print(numRoutes(20, 20))

c8a17782c8edb78df898634fdd1b13853512427b
<mask token>

<mask token>


def numRoutes(w, h):
    if (w, h) in results:
        return results[w, h]
    if w == 0 or h == 0:
        results[w, h] = 1
        return 1
    result = numRoutes(w - 1, h) + numRoutes(w, h - 1)
    results[w, h] = result
    return result


<mask token>

<mask token>


def numRoutes(w, h):
    if (w, h) in results:
        return results[w, h]
    if w == 0 or h == 0:
        results[w, h] = 1
        return 1
    result = numRoutes(w - 1, h) + numRoutes(w, h - 1)
    results[w, h] = result
    return result


print(numRoutes(20, 20))

results = {}


def numRoutes(w, h):
    if (w, h) in results:
        return results[w, h]
    if w == 0 or h == 0:
        results[w, h] = 1
        return 1
    result = numRoutes(w - 1, h) + numRoutes(w, h - 1)
    results[w, h] = result
    return result


print(numRoutes(20, 20))


results = {}

def numRoutes(w, h):
	if (w, h) in results:
		return results[(w, h)]
	if w == 0 or h == 0:
		results[(w, h)] = 1
		return( 1 )
	result = numRoutes(w - 1, h) + numRoutes(w, h - 1)
	results[(w, h)] = result
	return result

print(numRoutes(20, 20))
