static long function(int hasta, int K){
		if(m[K][hasta]>0)return m[K][hasta];
		long[][] mem = new long[hasta+1][hasta+1];
		for(int i = 0; i <=hasta; i++)
			for(int j = 0; j <= hasta; j++)
				mem[i][j]=(i==j?0:(i<j?MAX_VALUE:0));
		for(int h = 1; h < hasta; h++)
			for(int j = 1+h, i=1; j <= hasta; j++,i++)
				for(int k = i; k < j; k++)
					if(mem[i][j]>mem[i][k-1]+mem[k+1][j]+(k+K)*(j-i+1))
						mem[i][j] = mem[i][k-1]+mem[k+1][j]+(k+K)*(j-i+1);
		return m[K][hasta]=mem[1][hasta];
	}