#include <stdio.h>
#define N 10
void Sdvig(int *a, int *end)
{
if (a + 1 < end)
{
*a = *(a + 1);
Sdvig(a + 1, end);
}
}
int F(int *a, int *b, int n, int m)
{
if (n > 1)
{
b = a + (b - a + m - 1) % n;
Sdvig(b, a + n);
F(a, b, n - 1, m);
}
else return *a;
}
int main()
{
int a[N], i, m = 4;
for(i = 0; i < N; ++i)
a[i] = i + 1;
printf("%d\n", F
(a
, a
, N
, m
)); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNkZWZpbmUgTiAxMAp2b2lkIFNkdmlnKGludCAqYSwgaW50ICplbmQpCnsKICAgaWYgKGEgKyAxIDwgZW5kKQogICB7CiAgICAgICphID0gKihhICsgMSk7CiAgICAgIFNkdmlnKGEgKyAxLCBlbmQpOwogICB9Cn0KCmludCBGKGludCAqYSwgaW50ICpiLCBpbnQgbiwgaW50IG0pCnsKICAgaWYgKG4gPiAxKQogICB7CiAgICAgIGIgPSBhICsgKGIgLSBhICsgbSAtIDEpICUgbjsKICAgICAgU2R2aWcoYiwgYSArIG4pOwogICAgICBGKGEsIGIsIG4gLSAxLCBtKTsKICAgfQogICBlbHNlIHJldHVybiAqYTsKfQoKaW50IG1haW4oKQp7CiAgICBpbnQgYVtOXSwgaSwgbSA9IDQ7CiAgICBmb3IoaSA9IDA7IGkgPCBOOyArK2kpCiAgICAgICBhW2ldID0gaSArIDE7CiAgICBwcmludGYoIiVkXG4iLCBGKGEsIGEsIE4sIG0pKTsKICAgIHJldHVybiAwOwp9