  Given integers $n,k,\ell$ such that $0<k<n, \; 1<\ell$ and an integer vector
$x = (x_1,\ldots,x_n)$; denote by $m = m(x)$ the number of entries of $x$ that
are multiple of $\ell$. Choose $n-k$ entries of $x$ as follows: if $n-k \leq
m(x)$, take $n-k$ smallest entries of $x$ multiple of $\ell$; if $n-k > m(x)$,
take all $m$ such entries, if any, and add remaining $n-k-m$ entries
arbitrarily, for example, take the largest ones. In one step, the chosen $n-k$
entries (bears) keep their values, while the remaining $k$ (bulls) are reduced
by 1. Repeat such steps getting the sequence $S = S(n,k,\ell,x^0) = (x^0 \to
x^1 \to \ldots \to x^j \to \ldots)$. It is ``quasi-periodic". More precisely,
there is a function $N = N(n,k,\ell,x^0)$ such that for all $j \geq N$ we have
$m(x^j) \geq n-k$ and $range(x^j) \leq \ell$, where $range(x) = (\max(x_i \mid
i \in [n]) - \min(x_i \mid i \in [n])$. Furthermore, $N$ is a polynomial in
$n,k,\ell,$ and $range(x^0)$ and can be computed in time linear in $n,k,\ell$,
and $\log(1 + range(x^0))$. After $N$ steps, the system moves ``like a screw".
Assuming that $x_1 \leq \dots \leq x_n$, introduce the cyclical order on $[n] =
\{1, \ldots, n\}$ considering 1 and $n$ as neighbors. Then, bears and bulls
partition $[n]$ into two intervals, rotating by the angle $2 \pi k /n$ with
every $\ell$ steps. Furthermore, after every $p = \ell n / GCD(n,k) = \ell
LCM(n,k) / k$ steps all entries of $x$ are reduced by the same value $\delta =
pk/n$, that is, $x_i^{j+p} - x_i^j = \delta$ for all $i \in [n]$ and $j \geq
N$. We provide an algorithm computing $N$ (and $x^j$) in time linear in
$n,k,\ell, \log(1 + range(x^0))$ (and $\log (1+j)$). In case $k=n-1$ and $\ell
= 2$ such screw dynamical system are applicable to impartial games.
