Prove that $x_n=x$ eventually by the following condition. 
Let $(X,d)$ be a metric space and $\{x_n\}$ be sequence in $X$ which converges to some $x \in X$. Let $S$ denote the range set of the sequence $\{x_n\}$. If $S$ is finite then show that $\exists$ $m \in \mathbb N$ such that $x_n=x$ for all $n \ge m$.

My attempt $:$
If possible let the sequence $\{x_n\}$ does not eventually equal to $x$. Then $\exists$ a subsequence $\{x_{k_n}\}$ of $\{x_n\}$ in $S \setminus \{x\}$ such that $x_{k_n} \rightarrow x$ as $n \rightarrow \infty.$ This shows that $x \in S^d$ where $S^d$ denotes the derived set of $S$ in $(X,d).$ But this implies that every nbd of $x$ contains infinitely many elements of $S$ which is a contradiction since $S$ contains only a finite number of elements. This proves our claim.
Is the above reasoning correct at all? Please verify it.
Thank you in advance.

Since $S$ is finite, the set of positive distances between the points of $S$ is also finite. Let $d_{\text{min}}$ be the minimum of the distances between the points of $S$. Since $\{x_n\}$ converges to $x$, there is an $m$ so that for $n\ge m$, $|x_n-x|\le\frac{d_{\text{min}}}3$ Thus, for $n_1,n_2\ge m$,
$$
\begin{align}
\left|x_{n_1}-x_{n_2}\right|
&\le\left|x_{n_1}-x\right|+\left|x_{n_2}-x\right|\\
&\le\frac{2d_{\text{min}}}3
\end{align}
$$
Thus, for $n_1,n_2\ge m$, $x_{n_1}=x_{n_2}$.
