奇跡の都市アミダ（Amida, the City of Miracle）の市長は他の市のように選挙で選ぶのではない．かつて長い政権闘争と天変地異により疲弊したこの都市は，候補者全員を公平に選び，かつ幸運の星の下に生まれた者を市長にするために，候補者全員の運命をくじにゆだねることにしたのである．後にあみだくじと呼ばれるくじである．  選挙は以下のように行われる．候補者数と同数の長い縦線が引かれ，さらにいくつかの横線がそこに引かれる．横線は隣接した縦線の途中同士を結ぶように引かれる．いずれかの縦線の下には「当選」と書かれている．どの縦線が当選であるかは候補者からわからないように隠される．それぞれの候補者は縦線を 1 つ選択する．全ての候補者の選択が終わると，各候補者は線を上から下に向かってたどる．ただし，移動途中に横線が見つかったときは，横線の接続された反対側の縦線に移り，また下に向かってたどる．縦線の一番下までたどり着いたときに，そこに「当選」と書かれていた者が当選して，次期市長となる．  この方法はうまくいった．幸運な市長の下に，争いも災害も少ない平和な時代が続いた．しかし近年，人口増加のためにこの手法に限界が見えてきた．候補者が増えたため，あみだくじが大規模になり，手作業による集計では非常に時間がかかるようになったのである．そこで市では，市役所のプログラマーであるあなたにあみだくじの電算化を依頼した．  あなたの仕事は，あみだくじの構造と，選択された縦線の位置が与えられたときに，最終的にどの縦線にたどり着くかを求めるプログラムを書くことである．  以下の図は，サンプルとして与えた入力および出力の内容を示したものである．  
currentPlace = []
height = 0

def get_input():
    while True:
        try:
            a = input()
            if a == "0 0 0":
                break
            yield ''.join(a.split())

        except EOFError:
            break
if __name__ == '__main__':
    array = list(get_input())
    who = array[0][2]
    del array[0]
    array = sorted(array,key = lambda x:x[0],reverse = True)
    height = array[0][0]
    currentPlace = [int(height),int(who)]
    

    
    for i in range(len(array)):
        currentPlace[0] = int(array[i][0])
        
        #print(currentPlace)
        if (int(array[i][0]) == currentPlace[0]
        and (int(array[i][1]) == currentPlace[1]
        or int(array[i][2]) == currentPlace[1])):
            print("array[{0}]???{1}".format(i,array[i]))
            if int(array[i][1]) == currentPlace[1]:
                currentPlace[1] = int(array[i][2])
            else:
                currentPlace[1] = int(array[i][1])
            

    print(currentPlace[1])
currentPlace = []
array = []
height = 0
start = 0
abs_len = 0

def get_input():
    array = []
    N = []
    while True:
        try:
            str1,str2,str3 = input().split()
            int1,int2,int3 = int(str1),int(str2),int(str3)
            if int1 == 0 and int2 == 0 and int3 == 0:
                break
            yield [int1,int2,int3]
        except EOFError:
            break

if __name__ == '__main__':
    array_total = list(get_input())
    while True:
        height = array_total[start][1]
        who = array_total[start][2]
        array = array_total[start:start+height+1]

        currentPlace = [height,who]
        del array[0]
        array.sort(key = lambda x:x[0],reverse = True)

        for i in range(len(array)):
            currentPlace[0] = int(array[i][0])
            if (int(array[i][0]) == currentPlace[0]
            and (int(array[i][1]) == currentPlace[1]
            or int(array[i][2]) == currentPlace[1])):
                if int(array[i][1]) == currentPlace[1]:
                    currentPlace[1] = int(array[i][2])
                else:
                    currentPlace[1] = int(array[i][1])

        print(currentPlace[1])

        start = start + height + 1
        abs_len = abs_len + height + 1
        del array[:]

        if abs_len + 1 > len(array_total):
            break