#include<bits/stdc++.h>
using namespace std;
inline __int128 read(){
__int128 x=0;
bool f=0;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-') f^=1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<3)+(x<<1)+ch-'0';
ch=getchar();
}
if(f) return -x;
return x;
}
void write(__int128 x){
static int sta[20];
int top=0;
if(x<0) putchar('-'),x=-x;
do{
sta[top++]=x%10,x/=10;
}while(x);
while(top) putchar(sta[--top]+48);
}
void we(__int128 x){
write(x);
putchar('\n');
}
void put(string s){
int len=s.length();
for(int i=0;i<len;i++){
putchar(s[i]);
}
}
inline int mn(int x,int y){
return x<y?x:y;
}
inline int mx(int x,int y){
return x>y?x:y;
}
inline void asdf(int &x,int &y){
x^=y^=x^=y;
}
const __int128 mod=10000000000000000051ull,cs=3e9+200000000;
inline __int128 ksm(__int128 x,__int128 y){
__int128 ret=1;
while(y){
if(y&1) ret=ret*x%mod;
y>>=1;
x=x*x%mod;
}
return ret;
}
int n,m,c;
__int128 x,y,tx;
int main(){
n=read();
m=read();
c=read();
x=y=1;
for(int i=1;i<=n;i++) tx=read(),x=x*tx%mod;
for(int i=1;i<=m;i++) tx=read(),y=y*tx%mod;
x=x*ksm(y,mod-2)%mod;
__int128 a=1,b=0;
y=mod;
while(x>=cs){
swap(x,y),swap(a,b);
a-=x/y*b;
x%=y;
}
write(x);
putchar(' ');
write(a);
return 0;
}