from itertools import product

from string import digits





def is_producible(s, digit3):

    curr = 0

    for c in s:

        if c == digit3[curr]:

            curr += 1

            if curr == 3:

                return True

    return False





n = int(eval(input()))

s = eval(input())



ret = 0

for digit3 in product(digits, repeat=3):

    if is_producible(s, digit3):

        ret += 1

print(ret)



# 問題を分割する

# この番号は作れるのか？

n = int(eval(input()))

s = eval(input())



dp = tuple(set() for _ in range(4))

dp[0].add('')

# dp[x]:=x文字の構成可能なset



for c in s:

    for k in range(2, -1, -1):

        for incomplete_key in dp[k]:

            dp[k + 1].add(incomplete_key + c)



print((len(dp[3])))



# dp

from itertools import product
from string import digits


def is_producible(s, digit3):
    curr = 0
    for c in s:
        if c == digit3[curr]:
            curr += 1
            if curr == 3:
                return True
    return False


n = int(eval(input()))
s = eval(input())
ret = 0
for digit3 in product(digits, repeat=3):
    if is_producible(s, digit3):
        ret += 1
print(ret)
# 問題を分割する
# この番号は作れるのか？

n = int(eval(input()))
s = eval(input())
dp = tuple(set() for _ in range(4))
dp[0].add("")
# dp[x]:=x文字の構成可能なset
for c in s:
    for k in range(2, -1, -1):
        for incomplete_key in dp[k]:
            dp[k + 1].add(incomplete_key + c)
print((len(dp[3])))
# dp

-from itertools import product -from string import digits - - -def is_producible(s, digit3): -    curr = 0 -    for c in s: -        if c == digit3[curr]: -            curr += 1 -            if curr == 3: -                return True -    return False - - -ret = 0 -for digit3 in product(digits, repeat=3): -    if is_producible(s, digit3): -        ret += 1 -print(ret) -# 問題を分割する -# この番号は作れるのか？ +dp = tuple(set() for _ in range(4)) +dp[0].add("") +# dp[x]:=x文字の構成可能なset +for c in s: +    for k in range(2, -1, -1): +        for incomplete_key in dp[k]: +            dp[k + 1].add(incomplete_key + c) +print((len(dp[3]))) +# dp