def wprowadzDane():
    noweDane = []
    while True:
        liczbaDanych = int(input("Podaj liczbe danych: "))
        if 0 < liczbaDanych <= 100:
            break
        print("Niepoprawna liczba danych, wprowadz ponownie: ")
    print("Wprowadz dane: ")
    for i in range(liczbaDanych):
        noweDane.append(int(input(f"Podaj element nr {i}: ")))
    return noweDane

def wyprowadzDane(doWypisania):
    print(" ".join(map(str, doWypisania)))

def scalPosortowaneCiagi(d1, d2):
    wynik = []
    ia, ib = 0, 0

    while ia < len(d1) and ib < len(d2):
        if d1[ia] < d2[ib]:
            wynik.append(d1[ia])
            ia += 1
        elif d1[ia] > d2[ib]:
            wynik.append(d2[ib])
            ib += 1
        else:
            wynik.append(d1[ia])
            ia += 1
            wynik.append(d2[ib])
            ib += 1

    while ia < len(d1):
        wynik.append(d1[ia])
        ia += 1

    while ib < len(d2):
        wynik.append(d2[ib])
        ib += 1

    return wynik

print("*** Ciag A")
ciag1 = wprowadzDane()
print("*** Ciag B")
ciag2 = wprowadzDane()
wynik = scalPosortowaneCiagi(ciag1, ciag2)
print("*** Ciag scalony")
wyprowadzDane(wynik)
