求这个问题的代码怎么写

输入n和m,接着输入n个数ai,输出有多少个ai不小于m。

0<ai<10^1000(十的一千次方)

0<m<10^1000(同上)

#include <iostream>
#include <string>
using namespace std;

int cmp(string s1, string s2)
{
    if (s1.length() != s2.length()) return s1.length() - s2.length();
    const char * c1 = s1.c_str();
    const char * c2 = s2.c_str();
    int i = 0;
    while (c1[i] == c2[i] && c1[i + 1] != '\0') { i++;}
    return c1[i] - c2[i];
}

int main()
{
    int n;
    cin >> n;
    string m;
    cin >> m;
    int cnt = 0;
    for (int i = 0; i < n; i++)
    {
        string ai;
        cin >> ai;
        if (cmp(m, ai) <= 0) cnt++;
    }
    cout << cnt;
    return 0;
}