WA on #5
#include<bits/stdc++.h>
#define INF 1e16
#define endl '\n'
#define PI acos(-1)
#define pb push_back
#define int long long
#define mem(x,v) memset(x,v,sizeof x)
using namespace std;
const int N = 2e5+5;
const int MOD = 998244353;
inline int read(){
register int x=0,f=1;register char c=getchar();
while(c>'9'||c<'0'){if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9')x=(x<<1)+(x<<3)+(c^48),c=getchar();
return x*f;
}
int n,k,ans1,ans2,b[N];
struct Array{int x,id;}a[N];
bool cmp(Array x,Array y){return x.x>y.x;}
signed main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>n>>k,ans2=1;
for(int i=1;i<=n;i++)cin>>a[i].x,a[i].id=i;
sort(a+1,a+n+1,cmp);
for(int i=1;i<=k;i++)ans1=(ans1+a[i].x)%MOD,b[i]=a[i].id;
sort(b+1,b+k+1);
for(int i=2;i<=k;i++)ans2=(ans2*(b[i]-b[i-1]))%MOD;
cout<<ans1<<" "<<ans2;
return 0;
}