اگر نتونستی بفهمی چرا وقتی n بر m+1 بخش پذیر نیست، نفر اول برنده است، این رو بخون.
چون اگر توی حرکت اول نفر اول به اندازه ی باقی مانده ی n بر m+1 برداره، در تمام حرکات بعدی اگر نفر دوم k تا سکه برداره و نفر اول به اندازه ی m-k+1 برداره، برنده میشه. همون روشی که گفتی
کد (به همین سادگی؛ به همین خوشمزگی...):
#include <iostream>
using namespace std;
int main()
{
int n, m;
cin>>n>>m;
if(n%(m+1)==0)
cout<<2<<endl;
else
cout<<1<<endl;
return 0;
}