Problem:
Look for the Winner!

The citizens of TKB City are famous for their deep love in elections and vote counting.
Today they hold an election for the next chairperson of the electoral commission.
Now the voting has just been closed and the counting is going to start.
The TKB citizens have strong desire to know the winner as early as possible during vote counting.

The election candidate receiving the most votes shall be the next chairperson.
Suppose for instance that we have three candidates A, B, and C and ten votes.
Suppose also that we have already counted six of the ten votes and the vote counts of A, B, and C are four, one, and one, respectively.
At this moment, every candidate has a chance to receive four more votes and so everyone can still be the winner.
However, if the next vote counted is cast for A, A is ensured to be the winner since A already has five votes and B or C can have at most four votes at the end.
In this example, therefore, the TKB citizens can know the winner just when the seventh vote is counted.

Your mission is to write a program that receives every vote counted, one by one, identifies the winner, and determines when the winner gets ensured.

Input

The input consists of at most 1500 datasets, each consisting of two lines in the following format.

n

c1 c2 … cn

n in the first line represents the number of votes, and is a positive integer no greater than 100.
The second line represents the n votes, separated by a space.
Each ci (1 ≤ i ≤ n) is a single uppercase letter, i.e. one of 'A' through 'Z'.
This represents the election candidate for which the i-th vote was cast.
Counting shall be done in the given order from c1 to cn.

You should assume that at least two stand as candidates even when all the votes are cast for one candidate.

The end of the input is indicated by a line containing a zero.

Output

For each dataset, unless the election ends in a tie, output a single line containing an uppercase letter c and an integer d separated by a space:
c should represent the election winner and d should represent after counting how many votes the winner is identified.
Otherwise, that is, if the election ends in a tie, output a single line containing `TIE'.

Sample Input

1
A
4
A A B B
5
L M N L N
6
K K K K K K
6
X X X Y Z X
10
A A A B A C A C C B
10
U U U U U V V W W W
0

Output for the Sample Input

A 1
TIE
TIE
K 4
X 5
A 7
U 8

Solution in Scala (judge verdict: Accepted)

import java.util.Scanner

/**
  * Created by goryudyuma on 2017/07/16.
  */

object Main {

  def solve(sc: Scanner): Unit = {
    val n: Int = sc.nextInt()
    if (n != 0) {
      sc.nextLine()
      val S: Array[String] = sc.nextLine().split(" ")
      var m: scala.collection.mutable.Map[String, Int] = scala.collection.mutable.Map[String, Int]()

      for (s <- S) {
        m = m + (s -> 0)
      }

      var ans = "";
      var ansnum = -1
      for (i <- 0 until n) {

        m = m + (S(i) -> (m(S(i)) + 1))

        var num1 = 0
        var num2 = 0
        var str1 = ""
        var str2 = ""
        for (kv <- m) {
          var (k, v) = kv
          if (num1 < v) {
            val tmp = num1
            num1 = v
            v = tmp

            val tmp2 = str1
            str1 = k
            k = tmp2
          }

          if (num2 < v) {
            val tmp = num2
            num2 = v
            v = tmp

            val tmp2 = str2
            str2 = k
            k = tmp2
          }
        }

        if (ans.equals("") && num2 + n - i - 1 < num1) {
          ans = str1
          ansnum = i + 1
        }
      }

      if (ansnum == -1) {
        println("TIE")
      } else {
        println(ans + " " + ansnum)
      }
      solve(sc)
    }
  }

  def main(args: Array[String]): Unit = {
    val sc: Scanner = new Scanner(System.in)
    solve(sc)
  }
}