import re

# Unsere aktuelle Position.
ausgangskoordinaten = "N 48* 54.878 E 009* 04.313"

# Issue #4711: Finden Sie den Squiggle-Parameter
# und vervollstaendigen Sie den Programmcode hier.
squiggleparameter = ???

# Wir wissen auch nicht so ganz genau, wozu der Wobbleparameter dient.
# Darum kann sich irgendjemand irgendwann kuemmern. :)
wobbleparameter = [311, 483, 183, 149, 908, 550]

# Issue #0815: Irgendetwas stimmt hier nicht.
# Analysieren und beheben Sie die Probleme.
m = re.match(r"N (\d+)\* (\d+)\.(\d+) E (\d+)\* (\d+)\.(\d+)",
             ausgangskoordinaten)
N = [ int(m.group(1), 10), int(m.group(2), 16), int(m.group(3), 10) ]
E = [ int(m.group(4), 10), int(m.group(1), 10), int(m.group(6), 10) ]

# Zielkoordinaten berechnen.
NZ = [ n ^ s ^ w
       for n, s, w in
       zip(N, squiggleparameter[0:3], wobbleparameter[0:3])
]
EZ = [ e ^ s ^ w
       for e, s, w in
       zip(E, squiggleparameter[3:6], wobbleparameter[3:6])
]

# Zielkoordinaten formatieren.
ziel_N = f"N {NZ[0]:02}* {NZ[1]:02}.{NZ[2]:03}"
ziel_E = f"E {EZ[0]:03}* {EZ[1]:02}.{EZ[2]:03}"

# Zielkoordinaten ausgeben.
print(ziel_N, ziel_E)
