#include <cstdio>
#include <set>
#include <algorithm>

using namespace std;

typedef long long ll;
int n, m;
ll k[33333];

int main(void) {
  for (;;) {
    scanf("%d%d", &n, &m); if (n+m == 0) break;
    for (int i = 0; i < n; i++) scanf("%lld", k+i);
    
    set<long long> t;
    t.insert(0);
    long long s = 0;
    long long res = 0;
    for (int i = 0; i < n; i++) {
      // printf("%4lld", s);
      s = (s + k[i])%m;
      res = max(res, (s-*t.begin()+m)%m);
      auto it = t.upper_bound(s);
      if (it != t.end()) res = max(res, (s-*it+m)%m);
      t.insert(s);
    }
    // puts("");
    printf("%lld\n", res);
  }
  return 0;
}