(defun is_in(el spis)
 (cond
 ((null spis) nil )
 ((eql el (car spis)) T)
 (1 (is_in el (cdr spis)) )
 )
)

(defun remove_first(el spis)
 (cond
 ((null spis) nil )
 ((eql el (car spis)) (cdr spis))
 (1 (cons (car spis) ( remove_first el (cdr spis) ) ) )
 )
)

(defun group(spis)
 (cond
 ((null spis) nil )
 ((is_in (car spis) (cdr spis)) (cons (car spis) (group (cons (car spis) (remove_first (car spis) (cdr spis))))))
 (1  (cons (car spis) (group (cdr spis))) )
 )
)

(PRINT  (group '(1 2 1 3 2 5 4 7 4 1)))