#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include typedef long long ll; typedef unsigned long long ull; //#pragma comment(linker, "/STACK:1024000000,1024000000") //#pragma comment(linker, "/STACK:36777216") //hdu 扩栈 #define mm(a) memset(a,0,sizeof(a)) #define lr rt<<1 #define rr rt<<1|1 #define sync std::ios::sync_with_stdio(false);std::cin.tie(0); #define inf 0x3f3f3f3f #define eqs 1e-8 #define lb(x) (x&(-x)) #define ch(a) (int(a-'a')+1) #define rep(i, a, b) for(int i=a;i<=b;i++) #define mkp(a, b) make_pair(a,b) #define re register #define umap(a) (a).reserve(1024);(a).max_load_factor(0.25); using namespace std; typedef pair pii; typedef pair pll; typedef pair piii; //const double pi=acos(-1); const int maxn=500005; //const ll Mod=1000000007; const ll Mod=998244353; ll ksm(ll x,ll y) { ll res=1; while(y) { if(y&1) { res=res*x%Mod; } x=x*x%Mod; y/=2; } return res%Mod; } int main() { int t; scanf("%d",&t); while(t--) { ll a,b,k; scanf("%lld%lld%lld",&a,&b,&k); if(k%2==0) { k=k/2ll; k=ksm(2ll,k); printf("%lld %lld\n",a*k%Mod,b*k%Mod); } else { k=(k-1ll)/2ll; k=ksm(2ll,k); printf("%lld %lld\n",(a*k%Mod+b*k%Mod)%Mod,(a*k%Mod-b*k%Mod+Mod)%Mod); } } return 0; }