let line1 = readline();let line2 = readline();let line3 = readline(); let m = line2.split(' '); //每种砝码的重量 let x = line3.split(' '); //每种砝码对应的数量范围 let fama = [] //序列化砝码,比如两个1g和一个2g的砝码用[1,1,2]表示 for (let i = 0; i < m.length; i++) { for (let j = 0; j < x[i]; j++) { fama.push(Number(m[i])) } } let kind = new Set(); //用set表示加入当前砝码之前能产生的重量种类 kind.add(0); //set初始化为0 // 当第一个1g砝码放入时,set中要插入原先所有元素+1g后的结构,即{0,0+1},插入后变为{0,1} // 当第二个1g砝码放入时,set要插入{0+1,1+1},变为{0,1,2} // 第三个2g砝码放入时,set要插入{0+2,1+2,2+2},变为{0,1,2,3,4} for (let i = 0; i < fama.length; i++) { let arr = [...kind] //用一个数组来缓存当前种类的砝码的值 for (let k of arr) { kind.add(k + fama[i]); } } console.log(kind.size)