Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ACM-ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

No tag edit access

C. Little Elephant and Furik and Rubik

time limit per test

2 secondsmemory limit per test

256 megabytesinput

standard inputoutput

standard outputLittle Elephant loves Furik and Rubik, who he met in a small city Kremenchug.

The Little Elephant has two strings of equal length *a* and *b*, consisting only of uppercase English letters. The Little Elephant selects a pair of substrings of equal length — the first one from string *a*, the second one from string *b*. The choice is equiprobable among all possible pairs. Let's denote the substring of *a* as *x*, and the substring of *b* — as *y*. The Little Elephant gives string *x* to Furik and string *y* — to Rubik.

Let's assume that *f*(*x*, *y*) is the number of such positions of *i* (1 ≤ *i* ≤ |*x*|), that *x*_{i} = *y*_{i} (where |*x*| is the length of lines *x* and *y*, and *x*_{i}, *y*_{i} are the *i*-th characters of strings *x* and *y*, correspondingly). Help Furik and Rubik find the expected value of *f*(*x*, *y*).

Input

The first line contains a single integer *n* (1 ≤ *n* ≤ 2·10^{5}) — the length of strings *a* and *b*. The second line contains string *a*, the third line contains string *b*. The strings consist of uppercase English letters only. The length of both strings equals *n*.

Output

On a single line print a real number — the answer to the problem. The answer will be considered correct if its relative or absolute error does not exceed 10^{ - 6}.

Examples

Input

2

AB

BA

Output

0.400000000

Input

3

AAB

CAA

Output

0.642857143

Note

Let's assume that we are given string *a* = *a*_{1}*a*_{2}... *a*_{|a|}, then let's denote the string's length as |*a*|, and its *i*-th character — as *a*_{i}.

A substring *a*[*l*... *r*] (1 ≤ *l* ≤ *r* ≤ |*a*|) of string *a* is string *a*_{l}*a*_{l + 1}... *a*_{r}.

String *a* is a substring of string *b*, if there exists such pair of integers *l* and *r* (1 ≤ *l* ≤ *r* ≤ |*b*|), that *b*[*l*... *r*] = *a*.

Let's consider the first test sample. The first sample has 5 possible substring pairs: ("A", "B"), ("A", "A"), ("B", "B"), ("B", "A"), ("AB", "BA"). For the second and third pair value *f*(*x*, *y*) equals 1, for the rest it equals 0. The probability of choosing each pair equals , that's why the answer is · 0 + · 1 + · 1 + · 0 + · 0 = = 0.4.

Codeforces (c) Copyright 2010-2017 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Mar/29/2017 06:22:03 (c3).

Desktop version, switch to mobile version.
User lists

Name |
---|