| 记录编号 | 
        608337 | 
        评测结果 | 
        AAAAAAAAAAAAAAAAAAAA | 
    
    
        | 题目名称 | 
        4025.正负游戏 | 
        最终得分 | 
        100 | 
            
    
    
        | 用户昵称 | 
         梦那边的没好TM | 
        是否通过 | 
        通过 | 
    
    
        | 代码语言 | 
        C++ | 
        运行时间 | 
        0.354 s  | 
    
    
        | 提交时间 | 
        2025-10-25 09:44:02 | 
        内存使用 | 
        9.89 MiB  | 
        
    
    
    
    		显示代码纯文本
		
		#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define cpy(a,b) copy(begin(a),end(a),begin(b))
#define ld long double
#define dot(x) fixed<<setprecision(x)
#define foru(a,b,c) for(ll a=b;a<=c;a++)
#define recout(x) {cout<<(x);return 0;}
#define mod 998244353
ll n,m,k,a[1000005],b[1000005],d[1000005],bl,ans=1;
bool flip;
int main(){
    cin>>n>>m>>k;
    if((n+m)%2)recout(0);
    if(n<m)swap(n,m),flip=true;
    foru(i,1,n){
        a[i]=1,b[i]=m;
    }
    foru(i,1,k){
        ll x,y,z;
        cin>>x>>y>>z;
        if(flip)swap(x,y);
        a[x]*=z,b[x]--;
    }
    d[0]=1;
    foru(i,1,1e6){
        d[i]=d[i-1]*2%mod;
    }
    foru(i,1,n){
        if(b[i]==m){
            bl=i;
        }
    }
    foru(i,1,n){
        if(i==bl)continue;
        ans=ans*d[b[i]-1]%mod;
    }
    cout<<ans;
    return 0;
}