#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
template < class S, class T> inline S max_L( S a,T b) {
return a>= b? a: b;
}
template < class T> inline int sod_L( T n) {
int res = 0 ;
while ( n) {
res + = n% 10 ;
n / = 10 ;
}
return res;
}
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
class Solution{
public :
int countLargestGroup( int n) {
int i;
int mx;
int res = 0 ;
int cnt[ 100 ] = { } ;
for ( i= ( 0 ) ; i< ( 100 ) ; i++ ) {
cnt[ i] = 0 ;
}
for ( i= ( 1 ) ; i< ( n+ 1 ) ; i++ ) {
cnt[ sod_L( i) ] ++ ;
}
{
int cTE1_r3A;
int RZTsC2BF;
if ( 100 == 0 ) {
RZTsC2BF = 0 ;
}
else {
RZTsC2BF = cnt[ 0 ] ;
for ( cTE1_r3A= ( 1 ) ; cTE1_r3A< ( 100 ) ; cTE1_r3A++ ) {
RZTsC2BF = max_L( RZTsC2BF, cnt[ cTE1_r3A] ) ;
}
}
mx = RZTsC2BF;
}
for ( i= ( 0 ) ; i< ( 100 ) ; i++ ) {
if ( mx== cnt[ i] ) {
res++ ;
}
}
return res;
}
}
;
// cLay varsion 20200408-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// class Solution {
// public:
// int countLargestGroup(int n) {
// int mx, res = 0, cnt[100] = {};
// rep(i,100) cnt[i] = 0;
// rep(i,1,n+1) cnt[sod(i)]++;
// mx = max(cnt(100));
// rep(i,100) if(mx==cnt[i]) res++;
// return res;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnRlbXBsYXRlPGNsYXNzIFMsIGNsYXNzIFQ+IGlubGluZSBTIG1heF9MKFMgYSxUIGIpewogIHJldHVybiBhPj1iP2E6YjsKfQp0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgaW50IHNvZF9MKFQgbil7CiAgaW50IHJlcyA9IDA7CiAgd2hpbGUobil7CiAgICByZXMgKz0gbiUxMDsKICAgIG4gLz0gMTA7CiAgfQogIHJldHVybiByZXM7Cn0KI2RlZmluZSBtYWluIGR1bW15X21haW4KaW50IG1haW4oKXsKICByZXR1cm4gMDsKfQojdW5kZWYgbWFpbgpjbGFzcyBTb2x1dGlvbnsKICBwdWJsaWM6CiAgaW50IGNvdW50TGFyZ2VzdEdyb3VwKGludCBuKXsKICAgIGludCBpOwogICAgaW50IG14OwogICAgaW50IHJlcyA9IDA7CiAgICBpbnQgY250WzEwMF0gPSB7fTsKICAgIGZvcihpPSgwKTtpPCgxMDApO2krKyl7CiAgICAgIGNudFtpXSA9IDA7CiAgICB9CiAgICBmb3IoaT0oMSk7aTwobisxKTtpKyspewogICAgICBjbnRbc29kX0woaSldKys7CiAgICB9CiAgICB7CiAgICAgIGludCBjVEUxX3IzQTsKICAgICAgaW50IFJaVHNDMkJGOwogICAgICBpZigxMDA9PTApewogICAgICAgIFJaVHNDMkJGID0gMDsKICAgICAgfQogICAgICBlbHNlewogICAgICAgIFJaVHNDMkJGID0gY250WzBdOwogICAgICAgIGZvcihjVEUxX3IzQT0oMSk7Y1RFMV9yM0E8KDEwMCk7Y1RFMV9yM0ErKyl7CiAgICAgICAgICBSWlRzQzJCRiA9IG1heF9MKFJaVHNDMkJGLCBjbnRbY1RFMV9yM0FdKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgbXggPVJaVHNDMkJGOwogICAgfQogICAgZm9yKGk9KDApO2k8KDEwMCk7aSsrKXsKICAgICAgaWYobXg9PWNudFtpXSl7CiAgICAgICAgcmVzKys7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiByZXM7CiAgfQp9CjsKLy8gY0xheSB2YXJzaW9uIDIwMjAwNDA4LTEKCi8vIC0tLSBvcmlnaW5hbCBjb2RlIC0tLQovLyAjZGVmaW5lIG1haW4gZHVtbXlfbWFpbgovLyB7fQovLyAjdW5kZWYgbWFpbgovLyAKLy8gY2xhc3MgU29sdXRpb24gewovLyBwdWJsaWM6Ci8vICAgaW50IGNvdW50TGFyZ2VzdEdyb3VwKGludCBuKSB7Ci8vICAgICBpbnQgbXgsIHJlcyA9IDAsIGNudFsxMDBdID0ge307Ci8vICAgICByZXAoaSwxMDApIGNudFtpXSA9IDA7Ci8vICAgICByZXAoaSwxLG4rMSkgY250W3NvZChpKV0rKzsKLy8gICAgIG14ID0gbWF4KGNudCgxMDApKTsKLy8gICAgIHJlcChpLDEwMCkgaWYobXg9PWNudFtpXSkgcmVzKys7Ci8vICAgICByZXR1cm4gcmVzOwovLyAgIH0KLy8gfTsK