>>552 は、target内の要素が相異なることが前提になりますね。

あとは、target内の要素の順序を保つようにならないものかな。