source_code: import java.io.*;
  import java.util.Arrays;
  import java.util.HashSet;
  import java.util.Set;
  import java.util.StringTokenizer;
  
  public class B {
      static PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out));
      static MyScanner sc;
  
      static {
          try {
              sc = new MyScanner();
          } catch (FileNotFoundException e) {
              e.printStackTrace();
          }
      }
  
      public static void main(String[] args) {
          doTask();
          out.flush();
      }
  
      public static void doTask(){
          long n = sc.nextInt();
          long k = sc.nextInt();
          long c = -2*(n+k);
          long d =  9 - 4*c;
          double result = n - (-3 + Math.sqrt(1.0*d))/2;
          out.println(Math.round(result));
      }
  
      public static class MyScanner {
          BufferedReader br;
          StringTokenizer st;
  
          public MyScanner() throws FileNotFoundException {
              br = new BufferedReader(new InputStreamReader(System.in));
          }
  
          String next() {
              while (st == null || !st.hasMoreElements()) {
                  try {
                      st = new StringTokenizer(br.readLine());
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
              }
              return st.nextToken();
          }
  
          int nextInt() {
              return Integer.parseInt(next());
          }
  
          long nextLong() {
              return Long.parseLong(next());
          }
  
          double nextDouble() {
              return Double.parseDouble(next());
          }
  
          String nextLine(){
              String str = "";
              try {
                  str = br.readLine();
              } catch (IOException e) {
                  e.printStackTrace();
              }
              return str;
          }
  
      }
  }
  