#include <bits/stdc++.h>
using namespace std;
long long mod = 1000000007;
void rv(vector<int> &a) {
  for (int i = 0; i < a.size(); i++) {
    cin >> a[i];
  }
}
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
int lcm(int a, int b) { return a / gcd(a, b) * b; }
int binpow(int a, int n) {
  int res = 1;
  while (n) {
    if (n & 1) res *= a;
    a *= a;
    n >>= 1;
    res %= mod;
  }
  return res;
}
long long MinDivisor(long long n) {
  if (n % 2 == 0) return 2;
  for (long long i = 3, isqrt = sqrt(n); i <= isqrt; i += 2)
    if (n % i == 0) return i;
  return n;
}
bool IsPrime(long long n) { return (MinDivisor(n) == n); }
bool IsPalindrome(int n) {
  string s = to_string(n);
  for (int i = 0; i < s.size() / 2; i++) {
    if (s[i] != s[s.size() - i - 1]) {
      return false;
    }
  }
  return true;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cout.precision(6);
  int n, m;
  cin >> n >> m;
  vector<int> a(n);
  for (int i = 0; i < n; i++) {
    a[i] = i + 1;
  }
  while (1) {
    bool ok = false;
    for (int i = 0; i < n; i++) {
      if (m - a[i] < 0) {
        ok = true;
        break;
      }
      m -= a[i];
    }
    if (ok) {
      break;
    }
  }
  cout << m;
  return 0;
}
