void main(){
	int n = _scan(); // 操作を行う回数
	int k = _scan(); // 足す値
	int ans = 1;
	foreach(elm; 0..n){
		if(ans*2 < ans+k)ans *=2;
		else ans +=k;
	}
	writeln(ans);
	
}

import std.stdio, std.conv, std.algorithm, std.numeric, std.string;

// 1要素のみの入力
T _scan(T= int)(){
	return to!(T)( readln().chomp() );
}

// 1行に同一型の複数入力
T[] _scanln(T = int)(){
	T[] ln;
	foreach(string elm; readln().chomp().split()){
		ln ~= elm.to!T();
	}
	return ln;
}
