public ArrayList<Integer> getFriendsKthLevelRecursive(int userID, int k) {

		ArrayList<Integer> friends = new ArrayList<Integer>();

		if (k == 1) {

			for (Integer friend : data.getUserFriends().get(userID)) {
				friends.add(friend);
			}
			return friends;

		} else {

			// Recursively call method to traverse the friend graph until k-th
			// level
			for (Integer friend : data.getUserFriends().get(userID)) {
				ArrayList<Integer> furtherFriends = getFriendsKthLevelRecursive(friend, k - 1);
				for (Integer furtherFriend : furtherFriends) {
					if (!friends.contains(furtherFriend) && furtherFriend != userID) {
						friends.add(furtherFriend);
					}
				}
				if (!friends.contains(friend)) {
					friends.add(friend);
				}
			}
			return friends;

		}
	}