#include<stdio.h>
#include<stdlib.h>
struct node{
int data;
struct node *prev;
struct node *next;
}node;
struct node *create(int data)
{
struct node *head;
head = (struct node*)malloc(sizeof(struct node));
head -> data = data;
head -> prev = head;
head -> next = head;
return head;
}
void backinsert(struct node *p,int data)
{
struct node *newnode ;
struct node *head;
head = p;
newnode = (struct node*)malloc(sizeof(struct node));
newnode -> data = data;
while ( p -> next != head)
p = p -> next ;
newnode -> next = p -> next ;
newnode ->prev = p;
p -> next = newnode;
}
struct node *denode(struct node *p)
{
struct node *current;
current = p;
p->prev->next = p->next;
p->next->prev = p->prev;
free(current);
return p;
}
struct node *find(struct node *p,int data)
{
while( p ->data != data)
p = p->next;
return p;
}
void print(struct node *p)
{
if( p -> next == p)
{
printf("%d ",p->data);
return;
}
struct node *head ;
head = p;
printf("%d ",p->data);
p = p->next;
while( p != head)
{
printf("%d ",p->data);
p = p -> next;
}
}
int main()
{
int n;
struct node *p = create(1);
int q,m;
scanf("%d%d%d",&n,&m,&q);
for(int i = 2 ;i <= n ;i++)
{
backinsert(p,i);
}
p = find(p,q);
for(int i = 1 ; i <= n - 1 ; i++)
{
for(int j = 1 ; j <= m ; j++)
{
p = p -> next;
}
p = denode(p);
p = p -> next;
/* print(p);
printf("\n");
*/
}
printf("%d", p->data );
}
#include<stdlib.h>
struct node{
int data;
struct node *prev;
struct node *next;
}node;
struct node *create(int data)
{
struct node *head;
head = (struct node*)malloc(sizeof(struct node));
head -> data = data;
head -> prev = head;
head -> next = head;
return head;
}
void backinsert(struct node *p,int data)
{
struct node *newnode ;
struct node *head;
head = p;
newnode = (struct node*)malloc(sizeof(struct node));
newnode -> data = data;
while ( p -> next != head)
p = p -> next ;
newnode -> next = p -> next ;
newnode ->prev = p;
p -> next = newnode;
}
struct node *denode(struct node *p)
{
struct node *current;
current = p;
p->prev->next = p->next;
p->next->prev = p->prev;
free(current);
return p;
}
struct node *find(struct node *p,int data)
{
while( p ->data != data)
p = p->next;
return p;
}
void print(struct node *p)
{
if( p -> next == p)
{
printf("%d ",p->data);
return;
}
struct node *head ;
head = p;
printf("%d ",p->data);
p = p->next;
while( p != head)
{
printf("%d ",p->data);
p = p -> next;
}
}
int main()
{
int n;
struct node *p = create(1);
int q,m;
scanf("%d%d%d",&n,&m,&q);
for(int i = 2 ;i <= n ;i++)
{
backinsert(p,i);
}
p = find(p,q);
for(int i = 1 ; i <= n - 1 ; i++)
{
for(int j = 1 ; j <= m ; j++)
{
p = p -> next;
}
p = denode(p);
p = p -> next;
/* print(p);
printf("\n");
*/
}
printf("%d", p->data );
}



