description: You are given a string s of length n consisting of characters a and/or b.
  
  Let \operatorname{AB}(s) be the number of occurrences of string ab in s as a substring. Analogically, \operatorname{BA}(s) is the number of occurrences of ba in s as a substring.
  
  In one step, you can choose any index i and replace s_i with character a or b.
  
  What is the minimum number of steps you need to make to achieve \operatorname{AB}(s) = \operatorname{BA}(s)?
  
  Reminder:
  
  The number of occurrences of string d in s as substring is the number of indices i (1 ≤ i ≤ |s| - |d| + 1) such that substring s_i s_{i + 1} ... s_{i + |d| - 1} is equal to d. For example, \operatorname{AB}(aabbbabaa) = 2 since there are two indices i: i = 2 where aabbbabaa and i = 6 where aabbbabaa.
  
  Input
  
  Each test contains multiple test cases. The first line contains the number of test cases t (1 ≤ t ≤ 1000). Description of the test cases follows.
  
  The first and only line of each test case contains a single string s (1 ≤ |s| ≤ 100, where |s| is the length of the string s), consisting only of characters a and/or b.
  
  Output
  
  For each test case, print the resulting string s with \operatorname{AB}(s) = \operatorname{BA}(s) you'll get making the minimum number of steps.
  
  If there are multiple answers, print any of them.
  
  Example
  
  Input
  
  
  4
  b
  aabbbabaa
  abbb
  abbaab
  
  
  Output
  
  
  b
  aabbbabaa
  bbbb
  abbaaa
  
  Note
  
  In the first test case, both \operatorname{AB}(s) = 0 and \operatorname{BA}(s) = 0 (there are no occurrences of ab (ba) in b), so can leave s untouched.
  
  In the second test case, \operatorname{AB}(s) = 2 and \operatorname{BA}(s) = 2, so you can leave s untouched. 
  
  In the third test case, \operatorname{AB}(s) = 1 and \operatorname{BA}(s) = 0. For example, we can change s_1 to b and make both values zero.
  
  In the fourth test case, \operatorname{AB}(s) = 2 and \operatorname{BA}(s) = 1. For example, we can change s_6 to a and make both values equal to 1.
solution: '''
  def fun():
      n = int(input())
      up = list(map(int, input().split()))
      down = list(map(int, input().split()))
      up = up[::-1]
      down = down[::-1]
      curr_idx = 0
      stops = []
      power = up[curr_idx]-down[curr_idx] #power = max steps frog can jump
      while True:
          print(curr_idx, power)
          if power+curr_idx == n:
              break
          old_power = power
          old_curr_idx = curr_idx
  
          new_power = power
          new_curr_idx = curr_idx
          
          for i in range(old_curr_idx+1, old_power+old_curr_idx+1, 1):
              if i+up[i]-down[i] > new_power+new_curr_idx :
                  new_power = up[i]-down[i]
                  new_curr_idx = i
          if new_power == old_power and new_curr_idx == old_curr_idx:
              print(-1)
              return
          curr_idx = new_curr_idx
          power = new_power
          stops.append(n-new_curr_idx)
      
      print(len(stops))
      for i in stops:
          print(i, end=" ")
      return
      
  fun()
  '''
  
  
  def fun():
      n = int(input())
      for i in range(n):
          s = input()
          if s[0] != s[-1]:
              s = s[-1]+s[1:]
          print(s)
              
  
  fun()
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  