n,k = map(int,input().strip().split())
tabs =list(map(int,input().strip().split()))
z=0
ones=0
for i in tabs:
if i == 1:
ones+=1
else:
z+=1
ans=0
visited=[0]*n
for i in range(len(tabs)):
if visited[i] == 1:
continue
zz=z
oo = ones
for j in range(i,len(tabs),k):
visited[j]=1
if tabs[j] == 1:
oo-=1
else:
zz-=1
ans = max(ans,abs(zz-oo))
print(ans)
#include <bits/stdc++.h>
using namespace std;
#define int long long int
void testcase()
{
int n , k , allpos = 0 , allneg = 0 , plusclos = 0 , negclos = 0 , answer = 0; cin >> n >> k;
vector<int> v(n);
for(auto &i : v)
{
cin >> i;
i == 1 ? allpos++ : allneg++;
}
for(int b = 0 ; b < n ; b++)
{
for(int i = 0 ; i < n ; i++)
{
if((i - b) % k == 0)
{
v[i] == 1 ? plusclos++ : negclos++;
}
}
plusclos = allpos - plusclos;
negclos = allneg - negclos;
answer = max(answer , abs(plusclos - negclos));
plusclos = 0 , negclos = 0;
}
cout << answer << endl;
}
int32_t main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
clock_t z = clock();
int tc = 1;
// cin >> tc;
while (tc--) testcase();
cerr << "Run Time : " << ((double)(clock() - z) / CLOCKS_PER_SEC) << endl;
return 0;
}
1650A - Deletions of Two Adjacent Letters | 1512A - Spy Detected |
282A - Bit++ | 69A - Young Physicist |
1651A - Playoff | 734A - Anton and Danik |
1300B - Assigning to Classes | 1647A - Madoka and Math Dad |
710A - King Moves | 1131A - Sea Battle |
118A - String Task | 236A - Boy or Girl |
271A - Beautiful Year | 520B - Two Buttons |
231A - Team | 479C - Exams |
1030A - In Search of an Easy Problem | 158A - Next Round |
71A - Way Too Long Words | 160A - Twins |
1A - Theatre Square | 1614B - Divan and a New Project |
791A - Bear and Big Brother | 1452A - Robot Program |
344A - Magnets | 96A - Football |
702B - Powers of Two | 1036A - Function Height |
443A - Anton and Letters | 1478B - Nezzar and Lucky Number |