public Region getClosestOwnedNeighborToOpponentBorder(BotState state) {
		List<Region> ownedNeighbors = this.getOwnedNeighbors(state);
		Region closestNeighbor = null;
		int minDistance = this.getDistanceToOpponentBorder();
		for (Region ownedNeighbor : ownedNeighbors) {
			if (ownedNeighbor.getDistanceToOpponentBorder() < minDistance) {
				closestNeighbor = ownedNeighbor;
				minDistance = ownedNeighbor.getDistanceToOpponentBorder();
			}
		}
		if (closestNeighbor == null) {
			return null;
		}
		List<Region> neighborsWithMinDistance = new ArrayList<>();
		for (Region ownedNeighbor : ownedNeighbors) {
			if (ownedNeighbor.getDistanceToOpponentBorder() == closestNeighbor.getDistanceToOpponentBorder()) {
				neighborsWithMinDistance.add(ownedNeighbor);
			}
		}
		List<Region> sorted = RegionValueCalculator.sortRegionsByDefenceRegionValue(state, neighborsWithMinDistance);
		return sorted.get(0);
	}