So basically, I need to go through each list of X in s, s1, and s2 and identify the first value, eg. FOX and replace with 'MONKEY' (uppercase) in the first 3 strings, [0, 1, 2]. I can get all the other strings to work but these ones get confused in the algorithm. It's because of the position of 'fox' and 'monkey' in positions of string X and the variation in position it's like .find() overlooks it. 

```
   X = [ ["The fox chattered the dim monkey's ears off!", 'FOX'   , 'MoNkEy' ],
          ["The fox chattered the dim monkey's ears off!", 'MoNkEy', 'FOX'    ],
          ["The monkey chattered the dim fox's ears off!", 'FOX'   , 'MoNkEy' ],
          ["Silly monkey chattered dim fox's ears off!"  , 'siLLy' , 'dIm'    ]]

def swap_strs(s, s1, s2):
    if s1.upper() == '' or s1.upper() not in s.upper():
        return "s1 NO GOOD"
    if s2.upper() == '' or s2.upper() not in s.upper():
        return "s2 NO GOOD"    

    l1, l2 = len(s1), len(s2)
    slower = s.lower()
    p1, p2 = slower.find(s1.lower()), slower.find(s2.lower())
    s1 = s1.upper()
    s2 = s2.upper()

    target = s[:p1] + s2 + s[p1+len(s1):p2] +s1

    return target

def Q1():

    for s, s1, s2 in X:
        print(s, '\n', swap_strs(s, s1, s2))
Q1()

```

Currently my resulting code is this, any advice?

```
Q1()
The fox chattered the dim monkey's ears off! 
 The MONKEY chattered the dim FOX
The fox chattered the dim monkey's ears off! 
 The fox chattered the dim FOXMONKEY
The monkey chattered the dim fox's ears off! 
 The monkey chattered the dim MONKEYFOX
Silly monkey chattered dim fox's ears off! 
 DIM monkey chattered SILLY

```

Desired output:

```
Q1()
The fox chattered the dim monkey's ears off! 
 The MONKEY chattered the dim FOX's ears off!
The fox chattered the dim monkey's ears off! 
 The MONKEY chattered the dim FOX's ears off!
The monkey chattered the dim fox's ears off! 
 The FOX chattered the dim MONKEY's ears off!
Silly monkey chattered dim fox's ears off! 
 DIM monkey chattered SILLY fox's ears off!

```