简单题,用字符串或者数组都可以做出来

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <string>
#include <set>
#include <unordered_map>
#define ms(a,b) memset((a),(b),sizeof(a))

using namespace std;

typedef long long ll;

typedef unsigned long long ull;

typedef pair<int, int> PII;

const int mod = 1e9 + 7;

const int P = 131;

const int N = 1010;

const int inf = 0x3f3f3f3f;

const ll lnf = 9e18;

int f( char a ) {
	if( a >= 'a' && a <= 'z' ) return 1;
	else if( a >= 'A' && a <= 'Z' ) return 2;
	else if( a >= '0' && a <= '9' ) return 3;
	else if( a == ' ' ) return 4;
	else return 5;
}

int n, m, cnt = 0, kk = 0,ss=0;
string s[N];
string a;

int main() {
	cin >> m >> n;
	
	for( int i = 1; i <= n; i++ ) {
		cin >> a;
		int flag = 0;
		
		for( int i = 0; i < ss; i++ ) {
			if( s[i] == a ) {
				flag = 1;
				break;
			}
		}
		
		if( flag == 0 ) {
			if( ss >= m ) {
				s[kk++] = a;
				
				if( kk >= m ) kk = 0;
			}
			else {
                s[ss++] = a;
            }
			cnt++;
		}
	}
	
	cout << cnt << endl;
	return 0;
}