Multiple calling in IIFE in JavaScript

Let them offer you a tricky task: make some calling parentheses, like this:

javascript(function() {
  // some code
})()(); // multiple calling parentheses

If you think about it, it becomes obvious that in this case the in-place function call should return an anonymous function, like this:

javascript(function() {
  return function() {
    console.log('!');
  };
})()(); // shows '!'
Задание 1

Add the following code so that, when its running, '!' will be displayed:

javascript(function() {
  // some code
})()()();
Задание 2

Add the following code so that its launch prints the sum of the numbers passed in the parameters:

javascript(function() {
  // some code
})(1)(2);
Задание 3

Add the following code so that its launch prints the sum of the numbers passed in the parameters:

javascript(function() {
  // some code
})(1)(2)(3);