import scala.io.{StdIn => in}

object Main extends App {

  val mod = 1000000007L
  def modInve(a:Long,b:Long,m:Long):Long = {
    if(b == 0) 1
    else if(b % 2 == 0) modInve(a * a%m, b/2, m)
    else a * modInve(a, b-1,m) % m
  }

  val n = in.readInt
  val s = in.readLine
  val sa = s.toSet.toArray
  val same = s.size - sa.size + 1
  val n2 = sa.size

  val fact = Array.ofDim[Long](n+2)
  fact(0) = 1
  fact(1) = 1
  for(i <- 2 until n+2) {
    fact(i) = fact(i-1) * i % mod
  }

  // debug(same)
  // debug(fact.mkString(" "))

  val ans =
    if(same == 0) {
      s.indices.map(i => (fact(n) * modInve(fact(i+1) * fact(n-(i+1)) % mod, mod-2, mod)))
      .reduce((a,b) => (a+b) % mod)
    }
    else {
      sa.indices.drop(1).map(i => (fact(n2) * modInve(fact(i+1) * fact(n2-(i+1)) % mod,mod-2,mod)) * same % mod)
        .reduce((a,b) => (a+b) % mod) + n
      // debug(res.mkString(" "))
      // res.reduce((a,b) => (a+b) % mod) + n
      // debug(test.mkString(" "))
      // res
    }

  // debug(ans)
  println(ans)

  def debug(any:Any*):Unit = {
    if(this.getClass.toString == "class Main$") return
    println(any.mkString(" "))
  }
}