#include <bits/stdc++.h>
using namespace std;
int IT[10000000];
long long a[10000000], sum[10000000];
int n, k;
void init(int node, int l, int r) {
  if (l == r)
    IT[node] = l;
  else {
    init(2 * node, l, (l + r) / 2);
    init(2 * node + 1, (l + r) / 2 + 1, r);
    if (sum[IT[2 * node]] >= sum[IT[2 * node + 1]])
      IT[node] = IT[2 * node];
    else
      IT[node] = IT[2 * node + 1];
  }
}
long long query(int node, int l, int r, int i, int j) {
  int p1, p2;
  if (i > r || j < l) return -1;
  if (l >= i && r <= j) return IT[node];
  p1 = query(2 * node, l, (l + r) / 2, i, j);
  p2 = query(2 * node + 1, (l + r) / 2 + 1, r, i, j);
  if (p1 == -1) return p2;
  if (p2 == -1) return p1;
  if (sum[p1] >= sum[p2]) return p1;
  return p2;
}
int main() {
  cin >> n >> k;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
  }
  long long t;
  t = 0;
  a[0] = 0;
  for (int i = 1; i < k; i++) {
    t += a[i];
  }
  int kn;
  for (int i = k; i <= n; i++) {
    t += a[i] - a[i - k];
    sum[i - k + 1] = t;
  }
  kn = n - k + 1;
  init(1, 1, kn);
  long long m;
  m = 0;
  long long cs;
  int x1, x2;
  for (int i = 1; i + k <= kn; i++) {
    cs = query(1, 1, kn, i + k, kn);
    if (m < sum[i] + sum[cs]) {
      m = sum[i] + sum[cs];
      x1 = i;
      x2 = cs;
    }
  }
  cout << x1 << " " << x2;
  return 0;
}
