#include //#include #include #include #include #include #include #include #include #include #include #include #define MAX(x,y) (((x)>(y)) ? (x) : (y)) #define MIN(x,y) (((x)<(y)) ? (x) : (y)) #define sq(x) (x)*(x) #define cei(a,b) (long long)(((a)+(b)-1)/(b)) #define mst(a,b) memset((a),b,sizeof((a))) #define fi first #define se second #define pb push_back using namespace std; const int MAXN = 1e6+5; const int N=1e5+5; const int E4=1e4; //const long long mod = 1e9+7 ; const long long mod = 998244353 ; const int inf = 0x3f3f3f3f; typedef long long ll; typedef unsigned long long ull; typedef pair pii; typedef pair pll; int dx[4]= {1,0,0,-1}; int dy[4]= {0,-1,1,0}; ll fpow(ll a,ll n) { ll base=a; ll res=1; while(n) { if(n&1) res=base*res%mod; base=base*base%mod; n>>=1; } return res; } void solve() { ll a,b,k; scanf("%lld%lld",&a,&b); scanf("%lld",&k); ll base=k/2; ll p=fpow(2,base); ll aa=a,bb=b; if(k&1) { ll t=aa; aa+=bb; bb=t-bb; } aa=aa*p%mod; bb=bb*p%mod; aa+=mod,bb+=mod; printf("%lld %lld\n",aa%mod,bb%mod); } int main() { int T=1; scanf("%d",&T); for(int i=1; i<=T; i++) { // printf("Case %d:\n",i); solve(); } return 0; }