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: /**
   * Created by Himanshu
   **/
  
  import java.util.*;
  import java.io.*;
  import java.math.*;
  
  public class A1606 {
      public static void main(String[] args) throws IOException {
          PrintWriter out = new PrintWriter(System.out);
          Reader s = new Reader();
          int t = s.i();
          while (t-- > 0) {
              char [] arr = s.s().toCharArray();
              int n = arr.length;
              int a = 0 , b = 0;
              for (int i=0;i<n-1;i++) {
                  if (arr[i] == 'a' && arr[i+1] == 'b') a++;
                  else if (arr[i] == 'b' && arr[i+1] == 'a') b++;
              }
              if (a == b) {
                  for (char c : arr) out.print(c);
              } else {
                  arr[n-1] = arr[0];
                  for (char c : arr) out.print(c);
              }
              out.println();
          }
          out.flush();
      }
  
      public static void shuffle(long[] arr) {
          int n = arr.length;
          Random rand = new Random();
          for (int i = 0; i < n; i++) {
              long temp = arr[i];
              int randomPos = i + rand.nextInt(n - i);
              arr[i] = arr[randomPos];
              arr[randomPos] = temp;
          }
      }
  
      private static long phi(long n) {
          long result = n;
          for (long i = 2; i * i <= n; i++) {
              if (n % i == 0) {
                  while (n % i == 0)
                      n /= i;
                  result -= result / i;
              }
          }
          if (n > 1)
              result -= result / n;
          return result;
      }
  
      private static int gcd(int a, int b) {
          if(b == 0) return a;
          return gcd(b,a%b);
      }
  
      public static long nCr(long[] fact, long[] inv, int n, int r, long mod) {
          if (n < r)
              return 0;
          return ((fact[n] * inv[n - r]) % mod * inv[r]) % mod;
      }
  
      private static void factorials(long[] fact, long[] inv, long mod, int n) {
          fact[0] = 1;
          inv[0] = 1;
          for (int i = 1; i <= n; ++i) {
              fact[i] = (fact[i - 1] * i) % mod;
              inv[i] = power(fact[i], mod - 2, mod);
          }
      }
  
      private static long power(long a, long n, long p) {
          long result = 1;
          while (n > 0) {
              if (n % 2 == 0) {
                  a = (a * a) % p;
                  n /= 2;
              } else {
                  result = (result * a) % p;
                  n--;
              }
          }
          return result;
      }
  
      private static long power(long a, long n) {
          long result = 1;
          while (n > 0) {
              if (n % 2 == 0) {
                  a = (a * a);
                  n /= 2;
              } else {
                  result = (result * a);
                  n--;
              }
          }
          return result;
      }
  
      private static long query(long[] tree, int in, int start, int end, int l, int r) {
          if (start >= l && r >= end) return tree[in];
          if (end < l || start > r) return 0;
          int mid = (start + end) / 2;
          long x = query(tree, 2 * in, start, mid, l, r);
          long y = query(tree, 2 * in + 1, mid + 1, end, l, r);
          return x + y;
      }
  
      private static void update(int[] arr, long[] tree, int in, int start, int end, int idx, int val) {
          if (start == end) {
              tree[in] = val;
              arr[idx] = val;
              return;
          }
          int mid = (start + end) / 2;
          if (idx > mid) update(arr, tree, 2 * in + 1, mid + 1, end, idx, val);
          else update(arr, tree, 2 * in, start, mid, idx, val);
          tree[in] = tree[2 * in] + tree[2 * in + 1];
      }
  
      private static void build(int[] arr, long[] tree, int in, int start, int end) {
          if (start == end) {
              tree[in] = arr[start];
              return;
          }
          int mid = (start + end) / 2;
          build(arr, tree, 2 * in, start, mid);
          build(arr, tree, 2 * in + 1, mid + 1, end);
          tree[in] = (tree[2 * in + 1] + tree[2 * in]);
      }
  
      static class Reader {
          private InputStream mIs;
          private byte[] buf = new byte[1024];
          private int curChar, numChars;
  
          public Reader() {
              this(System.in);
          }
  
          public Reader(InputStream is) {
              mIs = is;
          }
  
          public int read() {
              if (numChars == -1) throw new InputMismatchException();
              if (curChar >= numChars) {
                  curChar = 0;
                  try {
                      numChars = mIs.read(buf);
                  } catch (IOException e) {
                      throw new InputMismatchException();
                  }
                  if (numChars <= 0) return -1;
              }
              return buf[curChar++];
          }
  
          public String nextLine() {
              int c = read();
              while (isSpaceChar(c)) c = read();
              StringBuilder res = new StringBuilder();
              do {
                  res.appendCodePoint(c);
                  c = read();
              } while (!isEndOfLine(c));
              return res.toString();
          }
  
          public String s() {
              int c = read();
              while (isSpaceChar(c)) c = read();
              StringBuilder res = new StringBuilder();
              do {
                  res.appendCodePoint(c);
                  c = read();
              } while (!isSpaceChar(c));
              return res.toString();
          }
  
          public long l() {
              int c = read();
              while (isSpaceChar(c)) c = read();
              int sgn = 1;
              if (c == '-') {
                  sgn = -1;
                  c = read();
              }
              long res = 0;
              do {
                  if (c < '0' || c > '9') throw new InputMismatchException();
                  res *= 10;
                  res += c - '0';
                  c = read();
              } while (!isSpaceChar(c));
              return res * sgn;
          }
  
          public int i() {
              int c = read();
              while (isSpaceChar(c)) c = read();
              int sgn = 1;
              if (c == '-') {
                  sgn = -1;
                  c = read();
              }
              int res = 0;
              do {
                  if (c < '0' || c > '9') throw new InputMismatchException();
                  res *= 10;
                  res += c - '0';
                  c = read();
              } while (!isSpaceChar(c));
              return res * sgn;
          }
  
          public double d() throws IOException {
              return Double.parseDouble(s());
          }
  
          public boolean isSpaceChar(int c) {
              return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
          }
  
          public boolean isEndOfLine(int c) {
              return c == '\n' || c == '\r' || c == -1;
          }
  
          public int[] arr(int n) {
              int[] ret = new int[n];
              for (int i = 0; i < n; i++) {
                  ret[i] = i();
              }
              return ret;
          }
  
          public long[] arrLong(int n) {
              long[] ret = new long[n];
              for (int i = 0; i < n; i++) {
                  ret[i] = l();
              }
              return ret;
          }
      }
  //    static class pairLong implements Comparator<pairLong> {
  //        long first, second;
  //
  //        pairLong() {
  //        }
  //
  //        pairLong(long first, long second) {
  //            this.first = first;
  //            this.second = second;
  //        }
  //
  //        @Override
  //        public int compare(pairLong p1, pairLong p2) {
  //            if (p1.first == p2.first) {
  //                if(p1.second > p2.second) return 1;
  //                else return -1;
  //            }
  //            if(p1.first > p2.first) return 1;
  //            else return -1;
  //        }
  //    }
  //    static class pair implements Comparator<pair> {
  //        int first, second;
  //
  //        pair() {
  //        }
  //
  //        pair(int first, int second) {
  //            this.first = first;
  //            this.second = second;
  //        }
  //
  //        @Override
  //        public int compare(pair p1, pair p2) {
  //            if (p1.first == p2.first) return p1.second - p2.second;
  //            return p1.first - p2.first;
  //        }
  //    }
  }
  
  