#include <stdio.h>
#include <stdlib.h>
// クジデータを読み込むための構造体
typedef struct{
int h;
int p;
int q;
} KUJI;
/*--- 交換 ---*/
void swap(KUJI *x, KUJI *y)
{
KUJI temp = *x;
*x = *y;
*y = temp;
}
/*--- 配列dataの先頭n個のソート ---*/
void sort(KUJI data[], int n)
{
int k = n - 1;
while (k >= 0){
int i, j;
for (i = 1, j = -1; i <= k; i++)
if (data[i - 1].h < data[i].h) {
j = i - 1;
swap(&data[i], &data[j]);
}
k = j;
}
}
main()
{
int n, m, e, h, p, q, i, j, k, now;
KUJI kuji[1001];
while(1){
scanf("%d %d %d", &n, &m, &e);
if(n==0 && m==0 && e==0) break;
// クジ初期化
for(i=1; i<=m; i++){
kuji[i].p=kuji[i].q=0;
}
// クジ読み込み
for(i=0; i<m; i++){
scanf("%d %d %d", &h, &p, &q);
kuji[i].h=h;
kuji[i].p=p;
kuji[i].q=q;
}
// 高さの順番に並べ替え
sort(kuji, m);
now=e;
for(i=0; i<m; i++){
// 今の縦棒の位置に横棒がのびてれば
if(kuji[i].p==now){
now=kuji[i].q;
}else if(kuji[i].q==now){
now=kuji[i].p;
}
}
printf("%d\n", now);
}
return 0;
}