using System.Collections.Generic;
public static void Main()
Console.WriteLine("Hello World");
Dictionary<string,long> map=new Dictionary<string,long>();
Console.WriteLine(GridTraveller_1(2,3,map));
public static long GridTraveller(int m,int n,Dictionary<string,long> map)
string key=String.Concat(m.ToString(),',',n.ToString());
if(map!=null) {if(map.ContainsKey(key)) return map[key];}
if(m==0 || n==0) return 0;
if (m==n && m==1) return 1;
map[key]=GridTraveller(m-1,n,map)+GridTraveller(m,n-1,map);
public static long GridTraveller_1(int m,int n,Dictionary<string,long> map)
string key=String.Concat(m.ToString(),',',n.ToString());
if(map!=null) {if(map.ContainsKey(key)) return map[key];}
if(m==0 || n==0) return 0;
if (m==n && m==1) return 1;
map[key]=GridTraveller_1(m+1,n-1,map)+GridTraveller_1(m,n-1,map)+GridTraveller_1(m-1,n-1,map);