14494λ² - λ€μ΄λλ―Ήμ΄ λμμ?
μ΄μ°¨μ λ°°μ΄μ΄ μ£Όμ΄μ§ λ μμμ μμ λμ κΉμ§ κ°λλ°μ μ΅λ¨ κ²½λ‘μ μλ₯Ό ꡬνλ λ¬Έμ μ
λλ€.
λ¬Έμ μμ ꡬ체μ μΌλ‘ λͺ
μνμ§λ μμλλ°, μ΅λ¨ κ²½λ‘κ° λ§μ΅λλ€.
λ¨Όμ μ΅λ¨ κ²½λ‘λ μ΄λ¬ν μμΌλ‘ μκ²Όμ΅λλ€.
λ¬Έμ μμ μΉμ ν 맨 μμμ μλ,μ€λ₯Έμͺ½μΌλ‘λ§ κ°λ μ΅λ¨ κ²½λ‘μ μ νμμ
μ΄λΌκ³ μΈκΈμ΄ λμ΄μμ΅λλ€.
νμ§λ§ λ¬Έμ λ μλμ μ€λ₯Έμͺ½ λΏλ§μ΄ μλ λκ°μ μΌλ‘λ μ΄λμ΄ κ°λ₯νλ€κ³ λμ΄μμ΅λλ€.
κ·Έλμ μ νμμ λκ°μ μ μΆκ°νκ² λλ©΄
λΌλ μ νμ λμΆμ΄ κ°λ₯ν΄μ§λλ€.
μ΄μ μ½λ©μ λ€μ΄κ°κ»λ°, μ£Όμν μ μ μΈλ‘μΆ[0]κ³Ό κ°λ‘μΆ[0]μ μμ κ·Έλ¦Όμ 보μλ€μνΌ μ λΆ 1λ‘ μ΄κΈ°νλ₯Ό μ§νν΄μΌ (ν΄λΉ ν/λ ¬μ μ κ·Ό κ°λ₯ν κ²½μ°μ μκ° λ¨ νλ) ν΄λΉ μ νμμ΄ μλ―Έκ° μμ΅λλ€.
n,m = map(int,input().split())
dp = [[0]*m for _ in range(n)]
dp[0][0] = 1
for a in range(n):
dp[a][0] = 1
for b in range(m):
dp[0][b] = 1
μ΄μ°¨μλ°°μ΄μ νλ μ μΈνκ³ κ°λ‘μΆμ 0λ²μ§Έ, μΈλ‘μΆμ 0λ²μ§Έ ν/μ΄μ μ λΆ 1λ‘ μ΄κΈ°νν΄μ€μλ€.
for i in range(len(dp)):
for j in range(len(dp[i])):
if i == 0 or j == 0:
continue
else:
dp[i][j] = dp[i-1][j] + dp[i][j-1] + dp[i-1][j-1]
μ΄κΈ°νν λΌμΈμ μ μΈν ꡬκ°μ μ λΆ λμΆν μ νμμ μ μ©μμΌμ€μλ€.
print(dp[n-1][m-1]%1000000007)
1000000007λ‘ λλ λλ¨Έμ§λ₯Ό λ¬Έμ μμ μꡬνλλ‘ μΆλ ₯ν΄μ€μλ€.