#define D
using System;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using static System.Console;
using static System.Math;

class Program
{
    static void Main()
    {
#if A
        FastIO.Int();
        var D = FastIO.Int();
        FastIO.Int();
        var K = FastIO.Int();
        WriteLine(D < K ? 1 : 0);
#endif

#if B
        var N = int.Parse(ReadLine());
        for (int i = 1; i <= N; i++)
        {
            if ((i * 108) / 100 == N)
            {
                WriteLine(i);
                return;
            }
        }
        WriteLine(":(");
#endif

#if C
        var X = int.Parse(ReadLine());
        var q = X / 100;
        var r = X % 100;
        WriteLine(5 * q < r ? 0 : 1);
#endif

#if D
        var N = int.Parse(ReadLine());
        var S = ReadLine();

        var b = new int[10];
        for (int i = 0; i < b.Length; i++)
        {
            b[i] = -1;
            for (int j = 0; j < S.Length; j++)
            {
                if (S[j] == '0' + i)
                {
                    b[i] = j;
                    break;
                }
            }
        }

        var c = new int[10, 10];
        for (int i = 0; i < 10; i++)
        {
            if (b[i] == -1) continue;
            for (int j = 0; j < 10; j++)
            {
                c[i, j] = -1;
                for (int k = b[i] + 1; k < S.Length; k++)
                {
                    if (S[k] == '0' + j)
                    {
                        c[i, j] = k;
                        break;
                    }
                }
            }
        }

        var d = new int[10, 10, 10];
        for (int i = 0; i < 10; i++)
        {
            if (b[i] == -1) continue;
            for (int j = 0; j < 10; j++)
            {
                if (c[i, j] == -1) continue;
                for (int k = 0; k < 10; k++)
                {
                    d[i, j, k] = -1;
                    for (int l = c[i, j] + 1; l < S.Length; l++)
                    {
                        if (S[l] == '0' + k)
                        {
                            d[i, j, k] = l;
                            break;
                        }
                    }
                }
            }
        }

        var ans = 0;
        for (int i = 0; i < 10; i++)
        {
            for (int j = 0; j < 10; j++)
            {
                for (int k = 0; k < 10; k++)
                {
                    if (d[i, j, k] > 0)
                    {
                        ans++;
                    }
                }
            }
        }

        WriteLine(ans);
#endif
    }
}


public static class FastIO
{
    static System.IO.Stream str = System.Console.OpenStandardInput();
    const int size = 1024;
    static byte[] buffer = new byte[size];
    static int ptr;
    static int len;

    static byte Read()
    {
        if (ptr == len)
        {
            len = str.Read(buffer, 0, size);
            if (len == 0) return 0;
            ptr = 0;
        }
        return buffer[ptr++];
    }

    public static int Int()
    {
        var c = Read();
        while (c < 0x21)
        {
            c = Read();
        }
        var n = false;
        if (c == '-')
        {
            n = true;
            c = Read();
        }
        var ret = 0;
        while (c > 0x20)
        {
            ret = ret * 10 + c - '0';
            c = Read();
        }
        return n ? -ret : ret;
    }

    public static long Long()
    {
        var c = Read();
        while (c < 0x21)
        {
            c = Read();
        }
        var n = false;
        if (c == '-')
        {
            n = true;
            c = Read();
        }
        var ret = 0L;
        while (c > 0x20)
        {
            ret = ret * 10 + c - '0';
            c = Read();
        }
        return n ? -ret : ret;
    }
}


Measured memory_bytes: 13140