Associate each structure in the language to a graph where every element is a vertex and there is an edge $a \to b$ iff $S(a) = b$. Now just chase the 'edges' using the axioms, to see that any model must be a disjoint union of exactly one semi-infinite chain and any number of doubly-infinite chains and/or cycles. Note that every vertex has a unique out-edge, and following the out-edges will yield either an infinite path or a repeated vertex. In the latter case, the repeated vertex cannot be $0$, so starting from $0$ yields the semi-infinite chain. The repeated vertex also cannot have different in-edges, so it must be in a cycle. Similarly, any vertex not in the chain starting from $0$ has a unique in-edge, so following the in-edges backward will yield the other half of the doubly-infinite paths.