public void fromStackToStack(int beginN, int endN, int srcStackNo,
			int dstStackNo) {
		int midStackNo = getThirdStackNo(srcStackNo, dstStackNo);
		
		//get all stacks for pop/push operations later
		Stack<Integer> srcStack = getStack(srcStackNo);
		Stack<Integer> dstStack = getStack(dstStackNo);
		
		if(beginN == endN){ //move 1 plate
			int plate = srcStack.pop();
			dstStack.push(plate);
			System.out.println("plate "+beginN+": "+srcStackNo+"->"+dstStackNo);
			return;
		}
		
		fromStackToStack(beginN, endN - 1, srcStackNo, midStackNo);
		fromStackToStack(endN, endN, srcStackNo, dstStackNo);
		fromStackToStack(beginN, endN - 1, midStackNo, dstStackNo);
	}