public static long f( int h, int w ){
		if(h>=0 && w < mem[h].length && mem[h][w]!=-1) return mem[h][w];
		if( w == 1 && h == 0 ) return mem[h][w]=1;
		if( h>=1 && w==0 ) return mem[h][w]=1;
		if( w < 0 || h < 0 ) return 0;
		else return mem[h][w]=f( h-1, w )+f( h+1, w-1 );
	}