public static int pushAdjacent(Stack<Pair<Integer, Integer>> myStack, int[][] canTravel, Pair<Integer, Integer> curr, Map<String, String> myMap, int[][] pathCost){
		
			int currX = curr.getFirst();
			int currY = curr.getSecond();
			 
			if(currX+1<canTravel.length && canTravel[currX+1][currY]==0){
				Pair<Integer, Integer> rightChild = new Pair(currX+1, currY);
				String parent = ""+currX+","+currY+"";
				String child = 	""+(currX+1)+","+currY+"";	
				myMap.put(child, parent);
				pathCost[currX+1][currY] = pathCost[currX][currY]+1;
				myStack.push(rightChild);
			}
			if(currY+1<canTravel[0].length && canTravel[currX][currY+1]==0){
				Pair<Integer, Integer> upChild = new Pair(currX, currY+1);
				String parent = ""+currX+","+currY+"";
				String child = 	""+(currX)+","+(currY+1)+"";	
				myMap.put(child, parent);
				pathCost[currX][currY+1] = pathCost[currX][currY]+1;
				myStack.push(upChild);
			}
			if(currX-1>=0 && canTravel[currX-1][currY]==0){
				Pair<Integer, Integer> leftChild = new Pair(currX-1, currY);
				String parent = ""+currX+","+currY+"";
				String child = 	""+(currX-1)+","+currY+"";	
				myMap.put(child, parent);
				pathCost[currX-1][currY] = pathCost[currX][currY]+1;
				myStack.push(leftChild);
			}
			if(currY-1>=0 && canTravel[currX][currY-1]==0){
				Pair<Integer, Integer> downChild = new Pair(currX, currY-1);
				String parent = ""+currX+","+currY+"";
				String child = 	""+(currX)+","+(currY-1)+"";	
				myMap.put(child, parent);
				pathCost[currX][currY-1] = pathCost[currX][currY]+1;
				myStack.push(downChild);
			}
				
			return myStack.size();	
		
	}