# D version
string = input()
length = len(string)
symbol = [string[0]]
index_of_l = [0]
index_of_ntl = [-1]
number_for_l = [1]
number_for_ntl = [0]
count = 1
rightest_ntl = -1
preceding = 0
prime_modulus = 1000000007
for i in range(1, length):
if string[i-1] == string[i]:
index_of_ntl[preceding] = index_of_l[preceding]
index_of_l[preceding] = i
number_for_ntl[preceding] = number_for_l[preceding]
continue
for j in range(count):
if string[i] == symbol[j]:
index_of_ntl[j] = index_of_l[j]
index_of_l[j] = i
number_for_ntl[j] = number_for_l[j]
if index_of_ntl[rightest_ntl] < index_of_ntl[j] < index_of_l[rightest_ntl] :
number_for_l[j] = 2 * number_for_l[preceding] - number_for_ntl[j] + number_for_ntl[rightest_ntl]
if not ( 0 <= number_for_l[j] < prime_modulus) :
number_for_l[j] %= prime_modulus
rightest_ntl = j
else:
number_for_l[j] = 2 * number_for_l[preceding]
if number_for_l[j] > prime_modulus:
number_for_l[j] %= prime_modulus
preceding = j
break
else:
symbol += [string[i]]
index_of_l += [i]
index_of_ntl += [-1]
number_for_l += [2 * number_for_l[preceding]]
if number_for_l[count] > prime_modulus :
number_for_l[count] %= prime_modulus
number_for_ntl += [0]
preceding = count
count += 1
print(number_for_l[preceding])