@Contract(pure=true)
  public static int @NotNull [] mergeArrays(int @NotNull [] a1, int @NotNull [] a2) {
    if (a1.length == 0) {
      return a2;
    }
    if (a2.length == 0) {
      return a1;
    }
    int[] result = new int[a1.length + a2.length];
    System.arraycopy(a1, 0, result, 0, a1.length);
    System.arraycopy(a2, 0, result, a1.length, a2.length);
    return result;
  }
@Contract(pure=true)
  public static int @NotNull [] mergeArrays(int @NotNull [] a1, int @NotNull [] a2)