//g++ 2.cpp -std=c++14 -I . #include using namespace std; #include using namespace atcoder; using ll = long long; using ld = long double; using vi = vector; using vvi = vector; using vll = vector; using vvll = vector; using vld = vector; using vvld = vector; #define fi first #define se second #define pb push_back #define all(a) a.begin(),a.end() #define rep(i,start,end) for(ll i=start;i<(ll)(end);i++) #define per(i,start,end) for(ll i=start;i>=(ll)(end);i--) constexpr ll mod = 1e9+7; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); ll a,b,c,d,n; cin>>a>>b>>c>>d>>n; ll z=n%8; ll ans=-1e18; rep(i,0,2){ rep(j,0,2){ ll a0,b0; if(i==0){ a0=a; } else{ a0=b; } if(j==0){ b0=c; } else{ b0=d; } rep(k,0,z){ ll p=a0-b0,q=a0+b0; a0=p,b0=q; } ans=max(ans,a0+b0); } } ans%=mod; if(ans<0){ ans+=mod; } ans*=pow_mod(16,n/8,mod); ans%=mod; cout<