#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <set>
#include <string>
#include <deque>
#include <fstream>
#include <cctype>
#include <cstring>
#include <cstdio>
#define DN 500005
#define LL long long
using namespace std;
  
typedef pair<int,int> per;
  
int n,k,bst[DN];
char c[10],c1[DN],c2[DN];
deque<int> ind[26];
  
  
int fst(char s) {
    return s-'a';
}
  
int r=1;
  
int main() {
  freopen("raci.in","r",stdin);
  freopen("raci.out","w",stdout);
  scanf("%d %d",&n,&k);
  for(int i=0; i<n; ++i) {
    scanf("%s",c);
    c1[i]=c[0];
    c2[i]=c[strlen(c)-1];
  }
  for(int i=0; i<n; ++i) {
    int cc=fst(c1[i]);
    for(;!ind[cc].empty() && i-ind[cc].front()>k; ind[cc].pop_front());
    if(!ind[cc].empty()) bst[i]=bst[ind[cc].front()]+1;
    else bst[i]=1;
    r=max(r,bst[i]);
    cc=fst(c2[i]);
      
    for(;!ind[cc].empty() && bst[i]>bst[ind[cc].back()];ind[cc].pop_back());
    ind[cc].push_back(i);
  }
  printf("%d",r);
  return 0;
}