### BUGGY CODE ###

def main():
    N, M, K = map(int, input().split())

    MAX_N = 2000000

    s = [int(c) for c in input()][::-1] + [0] * (MAX_N - N)
    t = [int(c) for c in input()][::-1] + [0] * (MAX_N - M)

    len_max = max(N, M) - 1
    st = []
    for i in range(len_max, -1, -1):
        m = []
        if s[i] and t[i]:
            s[i] = t[i] = 0
            xs = xt = 1
            z = K - 1
            j = i + 1

            while xs or xt:
                if not s[j] and not t[j]:
                    if xs and not xt:
                        s[j] = 1
                        st.append(j)
                        len_max = max(len_max, j)
                        break
                    elif not xs and xt:
                        t[j] = 1
                        st.append(j)
                        len_max = max(len_max, j)
                        break

                if not st or st[-1] - j > z:
                    s[j + z] = t[j + z] = 1
                    len_max = max(len_max, j + z)
                    break

                p = st.pop()
                z -= p - j
                j = p

                if s[j] == xs and t[j] == xt:
                    s[j] = t[j] = 0
                    j += 1
                    continue

                if xs and xt:
                    xs = s[j]
                    xt = t[j]
                    s[j] ^= 1
                    t[j] ^= 1
                    m.append(j)
                    j += 1
                    continue

                if s[j] != xs and t[j] != xt:
                    if not z:
                        s[j] = t[j] = 1
                        break
                    else:
                        s[j] = t[j] = 0
                        j += 1
                        z -= 1
                        xs = xt = 1
                        continue

            st += reversed(m)

        elif s[i] or t[i]:
            st.append(i)
    
    js = jt = 0
    while not s[len_max - js]:
        js += 1
    while not t[len_max - jt]:
        jt += 1

    print(*s[len_max - js:: -1], sep='')
    print(*t[len_max - jt:: -1], sep='')


main()


### FIXED CODE ###

def main():
    N, M, K = map(int, input().split())

    MAX_N = 2000000

    s = [0] * MAX_N
    t = [0] * MAX_N
    for i, c in zip(range(N - 1, -1, -1), input()):
        s[i] = int(c)
    for i, c in zip(range(M - 1, -1, -1), input()):
        t[i] = int(c)

    len_max = max(N, M) - 1
    st = []
    for i in range(len_max, -1, -1):
        m = []
        if s[i] and t[i]:
            s[i] = t[i] = 0
            xs = xt = 1
            z = K - 1
            j = i + 1

            while xs or xt:
                if not s[j] and not t[j]:
                    if xs and not xt:
                        s[j] = 1
                        st.append(j)
                        len_max = max(len_max, j)
                        break
                    elif not xs and xt:
                        t[j] = 1
                        st.append(j)
                        len_max = max(len_max, j)
                        break

                if not st or st[-1] - j > z:
                    s[j + z] = t[j + z] = 1
                    len_max = max(len_max, j + z)
                    break

                p = st.pop()
                z -= p - j
                j = p

                if s[j] == xs and t[j] == xt:
                    s[j] = t[j] = 0
                    j += 1
                    continue

                if xs and xt:
                    xs = s[j]
                    xt = t[j]
                    s[j] ^= 1
                    t[j] ^= 1
                    m.append(j)
                    j += 1
                    continue

                if s[j] != xs and t[j] != xt:
                    if not z:
                        s[j] = t[j] = 1
                        break
                    else:
                        s[j] = t[j] = 0
                        j += 1
                        z -= 1
                        xs = xt = 1
                        continue

            st += reversed(m)

        elif s[i] or t[i]:
            st.append(i)

    s = s[:len_max + 1]
    t = t[:len_max + 1]

    while not s[-1]:
        s.pop()
    while not t[-1]:
        t.pop()

    print(*reversed(s), sep='')
    print(*reversed(t), sep='')


main()