private ArrayList<Action> findPathsFromActionMap(
			int goalRowID, int goalColID, int goalDrcID) {
			//int startRowID,int startColID,int startDrcID) {
		
		ArrayList<Action> actions = new ArrayList<>();
		//Find the action min distance
		int rowID = goalRowID;
		int colID = goalColID;
		int drcID = goalDrcID;
		
		while(preAction[rowID][colID][drcID] != null){
			Action currentAction = preAction[rowID][colID][drcID];
			actions.add(0, currentAction);
			if(currentAction.equals(Action.TURN_LEFT)){
				 drcID = (drcID + 1) % (OREITATION_MAX + 1);

			}else if(currentAction.equals(Action.TURN_RIGHT)){
				drcID = (drcID + OREITATION_MAX) % (OREITATION_MAX + 1);

			}else{
				//currentAction == MOVE_FORWARD
				if(drcID == NORTH_INDEX){
					rowID++;
				}else if(drcID == SOUTH_INDEX){
					rowID--;
				}else if(drcID == EAST_INDEX){
					colID++;
				}else{
					//RIGHT Orientation
					colID--;
				}
				
			}
		}
	//	assert(rowID == startRowID && colID == startColID && drcID == startDrcID);

		return actions;
	}