Free-Response Question:Write different versions of the program that executes the following function: sequential, parallel, and distributed environment: remove(X, Xs) -> [H || H <- Xs, H /= X]. Hint: use function sublist to divide the input list into two halves for parallel and distributed programs. sublist(List1, Start, Len) -> List2 returns the sublist of List 1 starting at Start and with (maximum) Len elements. Example:> lists:sublist([1,2,3,4], 2, 2). [2,3] > lists:sublist([1,2,3,4], 2, 5). [2,3,4] > lists:sublist([1,2,3,4], 5, 2). ] Sequential: sremove(X, Xs). -module(sremove).-compile(export_all). sremove(X, Xs)-> Parallel: premove(X,Xs) Distributed: dremove(X, Xs).