#arc0332. [arc033_2]メタ構文変数

[arc033_2]メタ構文変数

問題文

foofoo」や「barbar」「hogehoge」などの、特に意味を持たない変数の名前に使用される文字列のことを「メタ構文変数」と呼びます。

高橋君は今、メタ構文変数について調べています。メタ構文変数には色々な種類があることが分かり、見つけたメタ構文変数にそれぞれに番号をつけました。高橋君はアリの AntAnt さんと BugBug くんのソースコードを読み、それぞれのソースコードに現れるメタ構文変数の番号を列挙しました。そして、AntAnt さんと BugBug くんの使うメタ構文変数の集合がどれくらい似ているのかを調べるために「JaccardJaccard 係数」を計算することにしました。AntAnt さんのソースコードに現れるメタ構文変数の集合を SAS_ABugBug くんのソースコードに現れるメタ構文変数の集合を SBS_B とするとこれらの集合の JaccardJaccard 係数は、

  • SASB/SASB||S_{A} ∩ S_{B}|| / ||S_{A} ∪ S_{B}||

という式で計算できます。ここで、S||S|| は集合 SS の要素数を表すものとします。別の言い方をすると、

  • SAS_{A}SBS_{B} の両方に現れる要素の個数」//SAS_{A}SBS_{B} の少なくともどちらか一方には現れる要素の個数」

となります。


入力

入力は以下の形式で標準入力から与えられる。

NAN_A NBN_B A1A_1 A2A_2 ... ANAA_{N_A} B1B_1 B2B_2 ... BNBB_{N_B}

  • 11 行目には、22 つの整数 NA(1NA105),NB(1NB105)N_A (1 ≦ N_A ≦ 10^5), N_B (1 ≦ N_B ≦ 10^5) が空白区切りで与えられる。これは、AntAnt さんのソースコードに NAN_A 個、BugBug くんのソースコードに NBN_B 個のメタ構文変数が現れたということを表す。
  • 22 行目には、AntAnt さんのソースコードに現れたメタ構文変数の番号を表す NAN_A 個の整数が空白区切りで与えられる。このうち ii 番目の整数 Ai(1Ai109)A_i (1 ≦ A_i ≦ 10^9) は、AntAnt さんのソースコードに AiA_i 番のメタ構文変数が現れることを表す。ただし、pneqqp \\neq q のとき ApneqAqA_p \\neq A_q であることが保証される。
  • 33 行目には、BugBug くんのソースコードに現れたメタ構文変数の番号を表す NBN_B 個の整数が空白区切りで与えられる。このうち ii 番目の整数 Bi(1Bi109)B_i (1 ≦ B_i ≦ 10^9) は、BugBug さんのソースコードに BiB_i 番のメタ構文変数が現れることを表す。ただし、pneqqp \\neq q のとき BpneqBqB_p \\neq B_q であることが保証される。

部分点

この問題には部分点が設定されている。

  • NA,NB1000N_A,N_B ≦ 1000Ai,Bi105A_i,B_i ≦ 10^5 を満たすテストケース全てに正解した場合は、4040 点が与えられる。
  • Ai,Bi105A_i,B_i ≦ 10^5 を満たすテストケース全てに正解した場合は、7070 点が与えられる。

出力

AntAnt さんと BugBug くんのソースコードに現れるメタ構文変数の集合の JaccardJaccard 係数を 11 行に出力せよ。小数点以下何桁でも出力してよいが、10610^{-6} を超える絶対誤差を含んではならない。出力の末尾に改行を入れること。


入力例1


3 2
1 3 5
1 2

出力例1


0.2500000000

AntAnt さんと BugBug くんのソースコードの両方に現れるメタ構文変数は 11 番のみで、AntAnt さんと BugBug くんのソースコードの少なくともどちらか一方には現れるメタ構文変数は 1,2,3,51,2,3,5 番の 44 つです。

よって、JaccardJaccard 係数は 1/41/4 となります。


入力例2


9 10
11 2 33 4 55 6 77 8 99
10 11 14 19 55 1000000000 4 5 7 8

出力例2


0.2666666667